V tomto programu se naučíte zkontrolovat, zda je číslo v Javě palindrom nebo ne. To se provádí pomocí smyčky for and while.
Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:
- Prohlášení Java, pokud … else
- Zatímco Java a dělat … zatímco Loop
- Java pro smyčku
Příklad 1: Program ke kontrole Palindromu pomocí smyčky while
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ýstup
121 je číslo palindromu.
V tomto programu
- Nejprve je hodnota daného čísla (num) uložena v jiné celočíselné proměnné, originalInteger. Je to proto, že musíme na konci porovnat hodnoty obráceného čísla a původního čísla.
- Potom se smyčka while používá k procházení num, dokud se nebude rovnat 0.
- Při každé iteraci je poslední číslice čísla uložena ve zbytku.
- Potom se zbytek přidá k obrácenémuIntegeru tak, že se přidá k další hodnotě místa (vynásobení 10).
- Poté je poslední číslice odstraněna z čísla po dělení 10.
- Nakonec jsou porovnány reversedInteger a originalInteger. Pokud je stejné, jedná se o palindromové číslo. Pokud ne, není.
Zde jsou prováděcí kroky:
Kroky provedení palindromupočet | num! = 0 | zbytek | obrácenéInteger |
---|---|---|---|
121 | skutečný | 1 | 0 * 10 + 1 = 1 |
12 | skutečný | 2 | 1 * 10 + 2 = 12 |
1 | skutečný | 1 | 12 * 10 + 1 = 121 |
0 | Nepravdivé | - | 121 |
Příklad 2: Program ke kontrole Palindromu pomocí smyčky for
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ýstup
11221 není palindrom.
Ve výše uvedeném programu se místo smyčky while používá smyčka for.
Při každé iteraci num /= 10
se provede a num !=0
zkontroluje se podmínka .