In diesem Programm lernen Sie zu überprüfen, ob eine Zahl in Java palindrom ist oder nicht. Dies erfolgt mithilfe der for- und while-Schleife.
Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:
- Java if… else-Anweisung
- Java während und mache … während Loop
- Java für Loop
Beispiel 1: Programm zum Überprüfen des Palindroms mithilfe der while-Schleife
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."); ) )
Ausgabe
121 ist eine Palindromzahl.
In diesem Programm
- Zunächst wird der Wert der angegebenen Zahl (num) in einer anderen ganzzahligen Variablen, originalInteger, gespeichert. Dies liegt daran, dass wir die Werte der umgekehrten Nummer und der ursprünglichen Nummer am Ende vergleichen müssen.
- Dann wird eine while-Schleife verwendet, um num zu durchlaufen, bis es gleich 0 ist.
- Bei jeder Iteration wird die letzte Ziffer von num im Rest gespeichert.
- Dann wird der Rest zu reversedInteger addiert, so dass er zum nächsten Stellenwert addiert wird (Multiplikation mit 10).
- Dann wird die letzte Ziffer nach der Division durch 10 aus num entfernt.
- Schließlich werden reversedInteger und originalInteger verglichen. Wenn gleich, ist es eine Palindromzahl. Wenn nicht, ist es nicht.
Hier sind die Ausführungsschritte, die stattfinden:
Palindrom-Ausführungsschrittenum | num! = 0 | Rest | reverseInteger |
---|---|---|---|
121 | wahr | 1 | 0 * 10 + 1 = 1 |
12 | wahr | 2 | 1 * 10 + 2 = 12 |
1 | wahr | 1 | 12 * 10 + 1 = 121 |
0 | falsch | - - | 121 |
Beispiel 2: Programm zum Überprüfen des Palindroms mit der for-Schleife
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."); ) )
Ausgabe
11221 ist kein Palindrom.
Im obigen Programm wird die for-Schleife anstelle einer while-Schleife verwendet.
Wird bei jeder Iteration num /= 10
ausgeführt und der Zustand num !=0
überprüft.