Все темы
Управление ходом программы
Сравнения и логические операторы, if и else, классический switch с проваливанием, switch со стрелкой и switch-выражения, циклы while, do-while и for, break, continue и метки.
Сортировка:
8 вопросов
JuniorТеорияЧастоЧто выведет программа?
JuniorТеорияЧасто
Что выведет программа?
1357
Открыть задачу →Типичные ошибки
- ✗Ждать
13579:breakзавершает цикл сразу, до конца тела, поэтому 9 не печатается. - ✗Ждать
1:continueне выходит из цикла; он пропускает остаток круга, и цикл продолжается со следующегоi.
Уточняющие вопросы
- →Что напечатает программа, если заменить
continueнаbreak? - →Почему
continueможет сделать циклwhileбесконечным?
JuniorТеорияЧастоЧто выведет программа?
JuniorТеорияЧасто
Что выведет программа?
10 11
Открыть задачу →Типичные ошибки
- ✗Ждать
10: это правилоwhile.do-whileпроверяет условие после тела, поэтому тело выполняется один раз, хотя10 < 5ложно. - ✗Ждать бесконечный цикл:
do-whileповторяется, пока условие истинно, а не пока оно не станет истинным, и останавливается после первой проверки.
Уточняющие вопросы
- →Как изменится вывод, если заменить
do-whileнаwhileс тем же условием? - →Когда цикл
do-whileподходит для задачи лучше, чемwhile?
JuniorТеорияЧастоЧто выведет программа?
JuniorТеорияЧасто
Что выведет программа?
B
Открыть задачу →Типичные ошибки
- ✗Ждать пустой вывод: отступы в Java не объединяют инструкции; без скобок
ifвладеет толькоprint("A"), аprint("B")выполняется всегда. - ✗Ждать ошибку компиляции: для ветки из одной инструкции скобки необязательны, код компилируется, а обманывает только отступ.
Уточняющие вопросы
- →Как изменить код, чтобы не печаталась ни одна буква?
- →Зачем правила оформления требуют скобки даже вокруг ветки из одной строки?
JuniorТеорияЧастоЧто выведет программа?
JuniorТеорияЧасто
Что выведет программа?
1232
Открыть задачу →Типичные ошибки
- ✗Ждать
1232369:breakс меткой завершает цикл, перед которым стоит метка, здесь внешний, поэтому доi = 3дело не доходит. - ✗Ждать бесконечный цикл: метка — не место, куда прыгают обратно;
break outerвыходит из помеченного цикла и идёт дальше.
Уточняющие вопросы
- →Что напечатает программа, если вместо
break outerнаписатьcontinue outer? - →Как ещё выйти сразу из двух вложенных циклов без метки?
JuniorТеорияЧастоЧто произойдёт при компиляции и запуске программы?
JuniorТеорияЧасто
Что произойдёт при компиляции и запуске программы?
Не скомпилируется
Открыть задачу →Типичные ошибки
- ✗Ждать
6 4: переменная из заголовкаforживёт только внутри цикла, поэтому после негоi— неизвестное имя, и javac сообщаетcannot find symbol. - ✗Ждать ошибку при запуске: javac проверяет каждое имя до запуска, поэтому не печатается ничего, даже
sum.
Уточняющие вопросы
- →Как изменить код, чтобы напечатать значение
iпосле цикла? - →Могут ли два цикла подряд в
mainоба объявитьint i?
JuniorТеорияЧастоЧто выведет программа?
JuniorТеорияЧасто
Что выведет программа?
false
Открыть задачу →Типичные ошибки
- ✗Ждать
ArithmeticException:&&вычисляется слева направо и пропускает правую часть, если левая ложна, поэтому10 / xне выполняется. - ✗Ждать ошибку компиляции: компилятор не следит за значением
x; деление на переменную компилируется, а упасть мог бы только запуск.
Уточняющие вопросы
- →Что изменится, если поменять части
&&местами? - →Когда
||пропускает правую часть?
JuniorТеорияЧастоЧто произойдёт при компиляции и запуске программы?
JuniorТеорияЧасто
Что произойдёт при компиляции и запуске программы?
Не скомпилируется
Открыть задачу →Типичные ошибки
- ✗Ждать
nullили пустую строку: switch-выражение обязано покрыть все возможные значенияn, и безdefaultкомпилятор его отвергает. - ✗Ждать ошибку при запуске: компилятор проверяет покрытие до запуска, какое бы значение ни лежало в
n.
Уточняющие вопросы
- →Как
yieldотдаёт значение из ветки-блока switch-выражения? - →Почему switch-выражению по
enumне нуженdefault, если перечислены все константы?
JuniorТеорияЧастоЧто выведет программа?
JuniorТеорияЧасто
Что выведет программа?
bc
Открыть задачу →Типичные ошибки
- ✗Ждать
b: ветка с двоеточием не заканчивается сама; безbreakвыполнение проваливается вcase 3, не проверяя его значение. - ✗Ждать
abcилиbcd:switchначинает с совпавшегоcase, а не сверху, аbreakпослеcзавершает его доdefault.
Уточняющие вопросы
- →Как сделать, чтобы при
d = 2печаталось толькоb? - →Когда проваливание в следующую ветку
caseполезно намеренно?