English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой программе вы узнаете, как использовать цикл while и цикл for для переворота числа в Java.
public class ReverseNumber { public static void main(String[] args) {}} int num = 1234, reversed = 0; while(num != 0) { int digit = num % 10; reversed = reversed * 10 + digit; num /= 10; } System.out.println("Обратное число: " + reversed); } }
Когда вы запустите этот программ, вывод будет:
Обратное число: 4321
В этом программе цикл while используется для переворота числа по следующим шагам:
Сначала остаток от деления num на 10 сохраняется в переменной digit. Теперь digit содержит последний символ num, то есть 4, затем digit умножается на 10 и добавляется к обратному числу. Умножение на 10 добавляет новый символ в обратное число. Одно деление на 10 умножается на 10 можно получить десятую позицию, одно деление на 10 можно получить百分ную позицию и так далее. В этом случае reversed содержит 0 * 10 + 4 = 4.
Затем num делится на 10, поэтому теперь он содержит только первые три цифры: 123.
После второй итерации digit равно 3, reversed равно 4 * 10 + 3 = 43 и num = 12
После третьей итерации digit равно 2, reversed равно 43 * 10 + 2 = 432 и num = 1
После четвертого итерации digit равно 1, reversed равно 432 * 10 + 1 = 4321 и num = 0
Теперь num = 0, поэтому тестовое выражение num != 0 не выполняется и цикл while завершается. reversed уже содержит обратное число 4321.
public class ReverseNumber { public static void main(String[] args) {}} int num = 1234567, reversed = 0; for(;num != 0; num /= 10) { int digit = num % 10; reversed = reversed * 10 + digit; } System.out.println("Обратное число: " + reversed); } }
Когда вы запустите этот программ, вывод будет:
Обратное число: 7654321
В приведенном выше примере while цикл был заменен на for цикл, где:
Без использования инициализирующего выражения
Тестовое выражение остается без изменений (num != 0)
Обновляющее/инкрементное выражение содержит num /= 10.
Таким образом, после каждого итерации обновляющее выражение будет выполняться, и последним будет удален num.
Когда для цикл выходит из цикла, reversed будет содержать обратные числа.