Я знаю, что цикл while может делать все, что может для цикла, но может ли цикл for делать что-нибудь в цикле while?Пример цикла while, который не может быть для цикла
Просьба привести пример.
Я знаю, что цикл while может делать все, что может для цикла, но может ли цикл for делать что-нибудь в цикле while?Пример цикла while, который не может быть для цикла
Просьба привести пример.
Да, легко.
while (cond) S;
for(;cond;) S;
Я также могу добавить, что это относится к C, C++, Java, C# и, вероятно, к множеству других языков, которые в значительной степени заимствуют C, но не применяются, например. Паскаль. – Steve314
Что мне нравится в этом ответе, так это то, что он одновременно демонстрирует, что это можно сделать, и почему это бессмысленно. –
В C-подобных языках, вы можете объявить для петель, таких, как это:
for(; true;)
{
if(someCondition)
break;
}
В языках, где for
более строгие, бесконечные циклы бы случай, требующий while
петлю.
Петля while
и классическая for
петля взаимозаменяемы:
for (initializer; loop-test; counting-expression) {
…
}
initializer
while (loop-test) {
…
counting-expression
}
Если фиксированному связан и шаг и не допускают изменения переменной цикла в теле передачи контура, а затем для петли соответствуют примитивным рекурсивных функций.
С теоретической точки зрения они слабее, чем общие, а петли, например, вы не можете вычислять функцию Аккермана только с такими циклами.
Если вы можете установить верхнюю границу условия в цикле while, чтобы стать истинным, вы можете преобразовать его в цикл for. Это показывает, что в практическом смысле нет никакой разницы, поскольку вы можете легко обеспечить астрономически высокую границу, например, дольше, чем жизнь Вселенной.
While loop
не имеет такой гибкости, как for loop
имеет и для циклов более читабельны, чем в цикле. Я бы продемонстрировал свою точку зрения примером. Для цикла может иметь форму как:
for(int i = 0, j = 0; i <= 10; i++, j++){
// Perform your operations here.
}
Некоторое время цикла не может быть использован как выше цикл, и сегодня большинство современных языков позволяют for each loop
, а также.
На мой взгляд, я мог быть предвзятым, пожалуйста, простите за это, нельзя использовать while loop
, если можно написать тот же код с for loop
.
Полностью зависит от языка программирования. Реальная петля не может. – jpfollenius
Предполагая, что язык с неограниченными целыми числами и «реальный for-loop», как говорит Смашер, и поскольку все, кто цитировал C, неправильно понимали - хуже, я думаю, что они серьезны - рассмотрим вычисление первого простого числа, большего, чем заданное целое число n , Я знаю, как это сделать с помощью while-loops. Можете ли вы сделать это только для петель? –
С помощью фразы «real for loop» вы строите тавтологию. «Реальный цикл» - это хронический цикл while и, следовательно, менее способен, но вы ничего не узнали из упражнения. – dmckee