|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.09.2017, 11:17 | #1 |
Новичок
Джуниор
Регистрация: 18.09.2017
Сообщений: 2
|
Учу Java.Помогите понять как работает небольшой код
Есть следующий код:
Код:
Вот, что не могу понять: Запускается цикл 1 шаг: i=0, следовательно e=0, следовательно внутренний while не выполняется. System.out.println выводит "2 в степени 0 равно 1" 2 шаг: i=1, следовательно e=1. переходим в while. result*=2 то же, что и result=result*2. у result значение 1, значит в while оно принимает значение 2 и в выводе дает "2 в степени 1 равно 2" где 1 это i, а 2 это result- вопрос - правильно ли я понимаю что result берется из последнего while? а "e--" это декремент который придает "e" значение 0.- зачем? о_о а вот с третьего шага я уже не понимаю вообще как считается 3 шаг: i=2, e=2 соответственно. как здесь while работает^^^, каким образом result становится 4 если result*=2 при том что result остается 1 с самого начала? на основе вот этого ^^^^^^ буду благодарен если знающий человек объяснит хотя бы, как выполняется 3 шаг или может что я пропустил в первых двух. буду оооочень благодарен. |
18.09.2017, 11:27 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
давайте по шагам разложим.
цикл while - это же, как ни странно, есть ЦИКЛ, т.е. набор команд, который выполяется несколько раз. это понятно? дальше. конструкция while(e>0){ ... e--; } выполнится ровно столько раз, сколько единиц в значении переменной e: если e=0 - то ноль раз (не выполнится) если e=1 - то один раз если e=2 - то два раза если e=3 - то три раза если e=4 - то четыре раза и т.д. это понятно? теперь, что касается result *=2; это запись сокращение от записи result = result*2; она означает, умножим содержимое переменной result на 2 и результат запишем в переменную result подумайте, что будет, если у нас result перед циклом равна 1, а данный оператор внутри цикла while выполняется дважды? т.е. что будет в переменной result после выполнения такого кода: Код:
|
18.09.2017, 11:30 | #3 | |||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
Цитата:
Походу вам надо срочно прочитать, что такое цикл и как оно работает. Цикл выполняет свое тело пока выполняется условие. Цитата:
1 шаг: result = result * 2 -> result = 2 2 шаг: result = result * 2 -> result = 4 3 шаг: условие не выполняется, выход |
|||
18.09.2017, 11:43 | #4 |
Новичок
Джуниор
Регистрация: 18.09.2017
Сообщений: 2
|
Спасибо большое за объяснение, меньше месяца изучаю язык. Только дошел до вложенных циклов и запутался, не знаю как сразу не понял, спасибо ещё раз!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать код сайта когда кликаешь блок в блоке квадратики круги, правильный или не правильный ответ, понять как он работает и как определять где правильный ответ | bule | Помощь студентам | 19 | 12.08.2016 10:05 |
Помогите понять код | OliverVood | JavaScript, Ajax | 10 | 15.11.2015 07:16 |
Помогите понять код (прокомментировать код шифрации на C++). | bicks | Помощь студентам | 3 | 10.12.2013 21:31 |
Помогите понять код | Arassir | JavaScript, Ajax | 1 | 12.05.2009 13:00 |
Помогите понять код | MaGiCeYe | Помощь студентам | 1 | 02.04.2007 19:57 |