Существует ли допустимое "условие" для которого 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() вызывается дважды в каждой итерации цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д