Существует ли допустимое "условие" для которого 3 показанных кода неэквивалентны? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

1. Существует ли допустимое "условие" для которого 3 показанных кода неэквивалентны?
while (условие) {
 //тело цикла
}
 
do {
 if (!условие) break;
 //тело цикла
} while (1);
 
for (;условие;) {
 //тело цикла
}
- думаю, что нет, не существует. Но в Си столько "фокусов"... 2. Это тот же вопрос другими словами. Всегда ли можно обойтись любым из 3 операторов for, while или do-while, не привлекая двух других операторов? - думаю, что всегда. for и while полностью взаимозаменяемы, а do-while можно заменить любым из них по типу
do {
 //тело цикла
} while (условие);
 
на
 
for (;;) {
 //тело цикла
 if (!условие) break;
}
 
и
 
while (1) {
 //тело цикла
 if (!условие) break;
}
Язык - C/C++ ну или другой Си-подобный, разрешены break и continue. В общем, задали такой вот вопрос, а что думают гуру?

Решение задачи: «Существует ли допустимое "условие" для которого 3 показанных кода неэквивалентны?»

textual
Листинг программы
while True:
    body()
    if condition(): break

Объяснение кода листинга программы

В представленном коде есть три части:

  1. Бесконечный цикл while True, выполняется до тех пор, пока условие не станет ложным.
  2. Функция body() выполняется в каждой итерации цикла.
  3. Функция condition() проверяется в каждой итерации цикла. Если она возвращает истину, то цикл продолжается, если ложь - цикл прерывается. Список кода:
  4. while True:
  5. body()
  6. if condition(): break Обратите внимание, что номер 2 повторяется дважды, поскольку функция body() вызывается дважды в каждой итерации цикла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.4 из 5
Похожие ответы