У цій програмі ви навчитеся перевіряти, чи є число паліндром на Java. Це робиться за допомогою циклу for і while.
Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:
- Заява про Java, якщо … ще
- Java в той час як і робити … в той час як Loop
- Java для циклу
Приклад 1: Програма для перевірки паліндрому за допомогою циклу 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."); ) )
Вихідні дані
121 - число паліндрому.
У цій програмі
- По-перше, значення заданого числа (num) зберігається в іншій цілочисельній змінній, originalInteger. Це тому, що нам потрібно порівняти значення зворотного числа та вихідного числа в кінці.
- Потім цикл while використовується для циклічного перегляду num, поки він не дорівнює 0.
- На кожній ітерації остання цифра числа зберігається в залишку.
- Потім залишок додається до reversedInteger таким чином, що він додається до наступного значення місця (множення на 10).
- Потім остання цифра видаляється з числа після ділення на 10.
- Нарешті, порівнюються reversedInteger та originalInteger. Якщо воно рівне, це число паліндрому. Якщо ні, то ні.
Ось кроки виконання, які мають місце:
Етапи виконання паліндромучисло | число! = 0 | залишок | reversedInteger |
---|---|---|---|
121 | правда | 1 | 0 * 10 + 1 = 1 |
12 | правда | 2 | 1 * 10 + 2 = 12 |
1 | правда | 1 | 12 * 10 + 1 = 121 |
0 | помилковий | - | 121 |
Приклад 2: Програма для перевірки паліндрому за допомогою циклу 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."); ) )
Вихідні дані
11221 не є паліндромом.
У наведеній вище програмі замість циклу while використовується цикл for.
На кожній ітерації num /= 10
виконується і num !=0
перевіряється стан.