In dit programma leer je controleren of een nummer palindroom is of niet in Java. Dit wordt gedaan door de lus for en while te gebruiken.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:
- Java if… else-instructie
- Java while en do … while Loop
- Java voor Loop
Voorbeeld 1: Programma om Palindrome te controleren met while-lus
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."); ) )
Uitvoer
121 is een palindroomgetal.
In dit programma
- Eerst wordt de waarde van het gegeven nummer (num) opgeslagen in een andere integer-variabele, originalInteger. Dit komt omdat we de waarden van het omgekeerde nummer en het originele nummer aan het einde moeten vergelijken.
- Vervolgens wordt een while-lus gebruikt om door num te lopen totdat deze gelijk is aan 0.
- Bij elke iteratie wordt het laatste cijfer van het nummer opgeslagen in de rest.
- Vervolgens wordt de rest opgeteld bij reversedInteger zodat het wordt opgeteld bij de waarde van de volgende plaats (vermenigvuldiging met 10).
- Vervolgens wordt het laatste cijfer verwijderd uit num na deling door 10.
- Ten slotte worden reversedInteger en originalInteger vergeleken. Indien gelijk, is het een palindroomgetal. Zo niet, dan is het dat niet.
Hier zijn de uitvoeringsstappen die plaatsvinden:
Palindrome uitvoeringsstappennum | num! = 0 | rest | reversedInteger |
---|---|---|---|
121 | waar | 1 | 0 * 10 + 1 = 1 |
12 | waar | 2 | 1 * 10 + 2 = 12 |
1 | waar | 1 | 12 * 10 + 1 = 121 |
0 | false | - | 121 |
Voorbeeld 2: programma om palindroom te controleren met for-lus
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."); ) )
Uitvoer
11221 is geen palindroom.
In het bovenstaande programma wordt for-lus gebruikt in plaats van een while-lus.
Bij elke iteratie num /= 10
wordt uitgevoerd en wordt de conditie num !=0
gecontroleerd.