Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Общая форма записи



while(<выражение>; <оператор>;

Если выражение истинно (т. е. не равно нулю), то выполняется оператор или группа операторов, входящих в цикл while; затем выражение проверяется снова. Последовательность действий, состоящая из проверки и выполнения оператора, повторяется до тех пор, пока выражение не станет ложным (т. е. равным нулю). После этого происходит выход из цикла, и далее выполняется оператор, стоящий после оператора цикла. При построении цикла while, в него необходимо включить конструкции, изменяющие величину проверяемого выражения так, чтобы в конце концов оно стало ложным. Иначе выполнение цикла никогда не завершится.


Цикл while — цикл с предусловием, поэтому вполне возможно, что тело цикла не будет выполнено ни разу.

Пример

к=5;    
п=10;    
while(к<п)    
{    
printf("k=%d n=%d\n", к, п);
к+=2;    
к=к+2;    
п++;    
}    

Цикл do...while

Общая форма записи

do <оператор>; while(<выражение>);

Цикл do...while — это цикл с постусловием, в котором истинность выражения проверяется после выполнения всех операторов, включенных в цикл. Тело цикла выполняется до тех пор, пока выражение не станет ложным, т. е. тело цикла выполнится хотя бы один раз. Использовать цикл лучше всего в тех случаях, когда должна быть выполнена хотя бы одна итерация.

Пример

printf("\п Введите число 10");
do scanf( "%d",&number);  
whi le(number!=10);  
       

Пример

do      
{      
  printf(" Введите n>0");
  scanf("% d", &n);  
}      
while (n<0) r  

Цикл for Общая форма записи

for(<инициализация>; <проверка условия>; <коррекция>) <оператор>;

Цикл for — цикл с фиксированным числом повторений. Для организации такого цикла должны рассматриваться три операции:

• инициализация счетчика;

• сравнение его величины с некоторым граничным значением;

• изменение значения счетчика при каждом прохождении тела цикла.

Эти три операции записываются в скобках и разделяются точкой с запятой. Первое выражение служит для инициализации счетчика. Инициализация осуществляется только один раз — когда цикл for начинает выполняться. Второе выражение — для проверки условия перед каждым возможным выполнением тела цикла. Когда выражение становится ложным (равным нулю), цикл завершится. Третье выражение вычисляется в конце каждого выполнения тела цикла. Счетчик может как увеличиваться, так и уменьшаться.

Пример

main () { int num;    
   
for(num=l; num<=5; num++)    
printf(" % 5d % 5d \n", num, num*num);
}    

В качестве третьего выражения может использоваться любое правильно составленное выражение, изменяющее значение проверяемого условия.

Пример

for (х=1;у<=35;у=5*х++ +10)

printf ("%10d %10о! \п", х, у);

Можно опустить одно или несколько выражений, но нельзя опускать точку с запятой. Параметры, находящиеся в заголовке цикла, можно изменить при выполнении операций в теле цикла.


Пример

к=2;  
for(n=3; k<=25; )
{  
к = к*п;  
}  

В цикле for часто используется операция «запятая» для разделения нескольких выражений. Это позволяет включить в спецификацию цикла несколько инициализирующих или корректирующих выражений. Выражения, к которым применяется операция «запятая», будут вычисляться слева направо.

Пример

for(i=0, j=l; i<n; i++, j=i);

В Си допускаются вложенные циклы, т. е. когда один цикл находится нутри другого.

Пример

for ( i= = 0; i<n; i++)  
{            
  for (j = =0; j <n; j + +)
  {          
  }          
}            

Рекомендации по выбору цикла

При выборе цикла необходимо оценить следующие факторы. Нужен ли вам цикл с предусловием или цикл с постусловием (чаще используется цикл с предусловием). Если в цикле необходима инициализация и коррекция, то цикл for более предпочтителен. Этот цикл чаще всего используется при подсчете числа прохождений тела цикла с обновлением индекса, если в этом нет необходимости, то можно использовать while.


Операторы break и continue

В теле любого цикла можно использовать оператор break, который позволяет выйти из цикла, не завершая его. Оператор continue позволяет пропустить часть операторов тела цикла и начать новую итерацию.

Пример

while(<выражение>; {

break;

Пример

while(<выражение>^ {

continue;

При вложенных циклах действия операторов break и continue распространяется только на самую внутреннюю структуру, в которой они содержатся. Использование этих операторов возможно, но нежелательно, т.к. они ухудшают читаемость программы, увеличивают вероятность ошибок, затрудняют модификацию.

Пример

main ()  
{    
  int i, j;
  float k;

  printf(" Введите j");    
  scant("%d", &j);    
  for { (i = -5; i <= 5; i++)    
  if(i==0)    
    continue;    
} } printf("\n %d/%d =%f ", j Д, k=j/i);

Оператор безусловного перехода goto Общая форма записи

goto метка;

метка: <оператор>;

Выполнение оператора goto вызывает передачу управления в программе оператору, помеченному меткой. Для отделения метки от оператора используется двоеточие. Помеченный оператор может появиться в программе как до оператора goto, так и после. Имена меток образуются по тем же правилам, что и имена переменных.

Пример

if ( size > 12)
  gc )tO a;    
el se        
  gc )tO b;    
а: cost = cost*3;
fl ag= = 1;      
b: s= = cons t* 'flag;

Использование goto в программе крайне нежелательно, так как он усложняет логику программы. Язык Си реализован таким образом, что можно программировать без оператора goto.





Дата публикования: 2014-11-04; Прочитано: 297 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...