Šajā programmā jūs iemācīsities pārbaudīt, vai Java ir vai nav palindroms. Tas tiek darīts, izmantojot cilni un kamēr.
Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:
- Java, ja … cits paziņojums
- Java kamēr un dari … kamēr Loop
- Java lokam
1. piemērs: Palindrome pārbaudes programma, izmantojot while ciklu
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."); ) )
Rezultāts
121 ir palindroms skaitlis.
Šajā programmā
- Pirmkārt, norādītā skaitļa (num) vērtība tiek saglabāta citā vesela skaitļa mainīgajā - originalInteger. Tas ir tāpēc, ka mums ir jāsalīdzina apgrieztā skaitļa un sākotnējā skaitļa vērtības beigās.
- Pēc tam, kamēr cilpa tiek izmantota, lai ciklētu caur num, līdz tā ir vienāda ar 0.
- Katrā atkārtojumā skaitļa pēdējais cipars tiek saglabāts atlikušajā daļā.
- Pēc tam atlikumu pievieno reversedInteger tā, lai tas tiktu pievienots nākamajai vietas vērtībai (reizinot ar 10).
- Pēc tam pēdējais cipars tiek noņemts no numura pēc dalīšanas ar 10.
- Visbeidzot, tiek salīdzināti reversedInteger un originalInteger. Ja tas ir vienāds, tas ir palindroms skaitlis. Ja nē, tas tā nav.
Šeit ir izpildes darbības, kas notiek:
Palindroma izpildes soļinum | skaits! = 0 | atlikušo | reversedInteger |
---|---|---|---|
121 | taisnība | 1 | 0 * 10 + 1 = 1 |
12 | taisnība | 2 | 1 * 10 + 2 = 12 |
1 | taisnība | 1 | 12 * 10 + 1 = 121 |
0 | nepatiesa | - | 121 |
2. piemērs: programma Palindrome pārbaudei, izmantojot cilpu
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."); ) )
Rezultāts
11221 nav palindroms.
Iepriekš minētajā programmā cilpa vietā tiek izmantota cilpa, kamēr cilpa.
Katrā atkārtojumā num /= 10
tiek izpildīts un num !=0
pārbaudīts stāvoklis.