Selles programmis õpite kontrollima, kas number on Java-s palindroomne või mitte. Selleks kasutatakse loopi ja while kasutamist.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:
- Java kui … muidu avaldus
- Java ajal ja tee … Loopi ajal
- Java aasale
Näide 1: Palindrome'i kontrollimise programm loopi abil
public class Palindrome ( public static void main(String() args) ( int num = 121, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable while( num != 0 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; num /= 10; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Väljund
121 on palindroomarv.
Selles programmis
- Esiteks, antud numbri (num) väärtus salvestatakse teise täisarvu muutujasse OriginalInteger. Seda seetõttu, et peame võrdlema lõpus pööratud arvu ja algse numbri väärtusi.
- Seejärel kasutatakse numbri läbimiseks mõnda aega silmust, kuni see on võrdne 0-ga.
- Igal iteratsioonil salvestatakse ülejäänud arv numbri järgi.
- Seejärel lisatakse ülejäänud osa pöördarvule Integer selliselt, et see lisatakse järgmisele kohaväärtusele (korrutades kümnega).
- Seejärel eemaldatakse viimane number numbrist pärast jagamist 10-ga.
- Lõpuks võrreldakse reversedInteger ja originalInteger. Kui see on võrdne, on see palindroomarv. Kui ei, siis pole.
Siin on toimingud, mis toimuvad:
Palindrome'i täitmise etapidarv | arv! = 0 | ülejäänud osa | vastupidine täisarv |
---|---|---|---|
121 | tõsi | 1 | 0 * 10 + 1 = 1 |
12 | tõsi | 2 | 1 * 10 + 2 = 12 |
1 | tõsi | 1 | 12 * 10 + 1 = 121 |
0 | vale | - | 121 |
Näide 2: Programm Palindrome'i kontrollimiseks silmusega
public class Palindrome ( public static void main(String() args) ( int num = 11221, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable for( ;num != 0; num /= 10 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Väljund
11221 ei ole palindroom.
Ülalolevas programmis kasutatakse loopi jaoks loopi asemel.
Igal iteratsioonil num /= 10
käivitatakse ja num !=0
kontrollitakse seisukorda .