Существует ли допустимое "условие" для которого 3 показанных кода неэквивалентны? - C (СИ)
Формулировка задачи:
1. Существует ли допустимое "условие" для которого 3 показанных кода неэквивалентны?
- думаю, что нет, не существует. Но в Си столько "фокусов"...
2. Это тот же вопрос другими словами. Всегда ли можно обойтись любым из 3 операторов for, while или do-while, не привлекая двух других операторов?
- думаю, что всегда. for и while полностью взаимозаменяемы, а do-while можно заменить любым из них по типу
Язык - C/C++ ну или другой Си-подобный, разрешены break и continue.
В общем, задали такой вот вопрос, а что думают гуру?
while (условие) { //тело цикла } do { if (!условие) break; //тело цикла } while (1); for (;условие;) { //тело цикла }
do { //тело цикла } while (условие); на for (;;) { //тело цикла if (!условие) break; } и while (1) { //тело цикла if (!условие) break; }
Решение задачи: «Существует ли допустимое "условие" для которого 3 показанных кода неэквивалентны?»
textual
Листинг программы
while True: body() if condition(): break
Объяснение кода листинга программы
В представленном коде есть три части:
- Бесконечный цикл while True, выполняется до тех пор, пока условие не станет ложным.
- Функция body() выполняется в каждой итерации цикла.
- Функция condition() проверяется в каждой итерации цикла. Если она возвращает истину, то цикл продолжается, если ложь - цикл прерывается. Список кода:
- while True:
- body()
- if condition(): break Обратите внимание, что номер 2 повторяется дважды, поскольку функция body() вызывается дважды в каждой итерации цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д