![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
![]() Код:
При каждом цикле For в переменную result присваивается значение 1 но при цикле while результат умножения присваивается в result и сохраняется. При повторном цикле for результатом присваивания переменной result становиться значение 1, при повторном цикле while результат предыдущего умножения в переменной result остается неизменным. 1)Вопрос: Почему так происходит? Разве после присваивания переменной result = 1 значения оно не должно оставаться без изменения? 2) Вопрос: декримент e-- в цикле while какую выполняет роль? |
![]() |
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
![]() Цитата:
Код:
У цикла какое условие? Код:
|
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
![]()
Именно, вот тут:
Код:
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
![]() Код:
сумма равна 0 sdsds 1 resultA 1 -- видно что на 2, 3 4.... цикле в переменную result присваивается значение 1 resultB 2 сумма равна 1 sdsds 2 resultA 1 resultB 2 resultB 4 сумма равна 2 sdsds 4 resultA 1 resultB 2 resultB 4 resultB 8 сумма равна 3 sdsds 8 resultA 1 resultB 2 resultB 4 resultB 8 resultB 16 сумма равна 4 sdsds 16 resultA 1 resultB 2 resultB 4 resultB 8 resultB 16 resultB 32 сумма равна 5 sdsds 32 resultA 1 resultB 2 resultB 4 resultB 8 resultB 16 resultB 32 resultB 64 сумма равна 6 sdsds 64 resultA 1 resultB 2 resultB 4 resultB 8 resultB 16 resultB 32 resultB 64 resultB 128 сумма равна 7 sdsds 128 resultA 1 resultB 2 resultB 4 resultB 8 resultB 16 resultB 32 resultB 64 resultB 128 resultB 256 сумма равна 8 sdsds 256 resultA 1 resultB 2 resultB 4 resultB 8 resultB 16 resultB 32 resultB 64 resultB 128 resultB 256 resultB 512 сумма равна 9 sdsds 512 |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
![]()
Ну да. Тело цикла for, как и любого другого выполняется на каждом шаге. В теле цикла фор стоит:
Код:
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
![]()
Не пойму вот что почему при каждом цикле в переменную result присваивается 1 но оказывается в нем 2, 4, 8... ведь при каждом цикле значение 1 должно быть в переменной result а не 2,4,8...
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
![]()
У вас тело фор состоит из:
Код:
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
![]()
Ведь присваивание переменной result происходит значением 1
То есть при повторном присваивания значения 1 переменная result должна иметь значение 1 |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 22.03.2019
Сообщений: 115
|
![]() Код:
Цикл while у нас выполняется один раз а значит умножение происходит один раз а именно 1 * 2 = 2; выводим 2; опять цикл for снова присваивается result значение 1 и снова выполняется while с тем же значением 1 1* 2 = 2: итд. Как тогда в result сохраняется значение 2 если мы присваиваем при каждом цикле 1 |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как при помощи цикла заполнить список и выйти из цикла(c#) | Podrajatel | Помощь студентам | 7 | 13.03.2018 09:18 |
Паскаль выдает Ошибку "Нельзя изменять значение переменной цикла внутри этого цикла" | Тырин Артем | Помощь студентам | 14 | 17.01.2016 17:53 |
алгоритмы нахождения эйлерова цикла и гамильтонова цикла в графе. | Necare | Помощь студентам | 0 | 15.11.2011 18:26 |
Переход от цикла к циклу не выходя из цикла (без multithreading) | Qousio | Общие вопросы C/C++ | 2 | 16.05.2009 09:27 |
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat | McMilin | Помощь студентам | 7 | 11.11.2007 14:10 |