// Вычисление целых степеней числа 2
class Power {
public static void main(String args[]) {
int е;
int result;
for (int i=O; i < 10; i++) {
result = 1;
е = i;
while (е > О) {
result *= 2;
е--;
}
System.out.println("2 в степени "+ i +
" равно " + result);
}
}
}
Ниже приведен результат выполнения данной программы.
2 в степени о равно 1
2 в степени 1 равно 2
2 в степени 2 равно 4
2 в степени 3 равно 8
2 в степени 4 равно 16
2 в степени 5 равно 32
2 в степени 6 равно 64
2 в степени 7 равно 128
2 в степени 8 равно 256
2 в степени 9 равно 512
Андрей
0 уровень
Почему "e--" ? Как это работает? Герберт Шилд. Java 8: руководство для начинающих 6-е издание.
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #2456881
18 ноября 2020, 21:55
самостоятельно изучая издание
там где задаюсь вопросом как это работает использую принт для переменных
чтобы прояснить весь процесс как он есть, анализируя их изменения в цикле
например:
// Вычисление целых степеней числа 2
class Power {
public static void main(String args []) {
int e;
int result;
for(int i=0; i < 10; i++) {
result = 1;
e = i;
System.out.println("eto i = e = " + i);
while(e > 0) {
result *= 2;
System.out.println("eto while e > 0 result " + result);
e--;
}
System.out.println("2 v stepeni " + i +
" ravno " + result);
}
}
}
результат:
D:\java>java Power.java
eto i = e = 0
2 v stepeni 0 ravno 1
eto i = e = 1
eto while e > 0 result 2
2 v stepeni 1 ravno 2
eto i = e = 2
eto while e > 0 result 2
eto while e > 0 result 4
2 v stepeni 2 ravno 4
eto i = e = 3
eto while e > 0 result 2
eto while e > 0 result 4
eto while e > 0 result 8
...
0
hidden #598481
14 ноября 2019, 16:46решение
ну что такое степень двойки - это двойка, умноженная сама на себя e раз.
ты приравниваешь e к какому-то числу, допустим к 5, и говоришь: умножать на два до тех пор, пока e больше нуля. и шг за шагом уменьшаешь е на 1 посредством операции е--. В итоге двойка умножится сама на себя 5 раз, получится 32
А внешний цикл for нужен для того, чтобы вычислить разные степени двойки от нуля до 9
+3
Андрей
14 ноября 2019, 17:33
Ок. Понятно.
Ну вот e равно 5, пять раз 2-ка сама на себя умножится, а на следующем шаге e будет равно 6 и уже 2-ка шесть раз сама на себя умножится, а потом семь.
А результат выполнения программы дает десять строк. Почему так?
0
Андрей
14 ноября 2019, 18:09
Не, я все понял. Когда while-то завершается, result опять равен 1. Фух наконец-то) Спасибо!
0
Taras
27 февраля 2021, 16:44
Привет! А я не очень. Можешь пожалуйста немного объяснить мне, так как застрял на этом фрагменте!
0
Андрей
14 ноября 2019, 16:41
Почему не "e++", например?
0