Циклы «За» и «Пока»: различия, вопрос и причины - PullRequest
2 голосов
/ 25 сентября 2010

Я пытаюсь выяснить некоторые ответы на некоторые вопросы и некоторые различия между циклами While и For в C ++, а также причины? Вот что я придумала до сих пор. Согласно http://www.cplusplus.com/doc/tutorial/control/

Пока есть: оператор while (выражение)

а для это: для (инициализация; условие; увеличение) оператора;

так в цикле for инициализация - это место, где мы объявляем переменную, которая будет использоваться в условии, верно?

Условие, при каких условиях оно будет зациклено.

Тогда увеличение - это то, где мы решаем, сколько добавить или вычесть в переменную.

В цикле while выражение также является условием, верно? Или это совершенно разные термины в этом случае?

Я заметил, что с помощью цикла for я могу переместить часть увеличения в инструкцию, если я хочу, но я не могу в цикле while поместить увеличение в круглых скобках или объявить переменную в круглых скобках (эта инициализация в для цикла). Мне было любопытно, в чем причина?

В любом случае, я учусь с помощью Google, и советами от людей, я довольно плохо знаком с программированием, поэтому, пожалуйста, будьте спокойны со мной, я не знаком с Jargon или сложных ответов пока нет. :) Если вам нужна дополнительная информация или что-нибудь, пожалуйста, скажите мне.

Ответы [ 3 ]

6 голосов
/ 25 сентября 2010
Циклы

for более удобны, чем истинная языковая конструкция.Например, петлю for можно легко развернуть в петлю * 1003. *

for ( c=0; c<10; c++ ) эквивалентна

c=0;
while ( c<10 ) {
  // some statements
  c++;
}

Кроме того, петли for не ограниченыс простыми числовыми операциями вы можете делать более сложные вещи, такие как (синтаксис C):

// a very basic linked list node
struct node {
  struct node *next;
};
struct node; //declare our node

// iterate over all nodes from 'start' node (not declared in this sample)
for ( node=start; node; node=node->next ) {}

, который будет перебирать простой связанный список.

Вы также можете иметь несколько инициализаторов, условияи заявления (в зависимости от языка) как таковые: for ( c=0, d=5; c<10, d<20; c++, d++ ).Но я бы посоветовал не сходить с ума из-за таких петель, поскольку они становятся довольно грязными.

0 голосов
/ 14 февраля 2017

Как правило, для операторов используются для counter-controlled repetition, а для операторов для sentinel-controlled repetition.

• Большинство for statements может быть представлено эквивалентным while statements следующим образом:

Ссылки: Как программировать на Java ™ (ранние объекты), десятое издание

0 голосов
/ 25 сентября 2010

в цикле for, инициализация может объявлять переменные или присваивать им значения, или и то и другое.

В зависимости от вашего компилятора область действия этих переменных будет разной. Например, VC ++ 6.0 расширит область действия переменной за пределами цикла, и общий способ обойти это ужасен:

#define for if(0){} else for

на самом деле, синтаксис for:

for (инициализация; выражение условия цикла; операторы, запускаемые при цикле)

Все они могут быть оставлены пустыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...