Практикум для изучения дисциплины «Основы программирования»



Pdf көрінісі
бет51/81
Дата08.07.2020
өлшемі1,55 Mb.
#74978
түріПрактикум
1   ...   47   48   49   50   51   52   53   54   ...   81
Байланысты:
А.А. Тюгашев

ЗАМЕЧАНИЕ 
Конструкция  for  может  использоваться  для  задания 
бесконечного 
цикла 
в 
случае 
отсутствия 
инициализирующих  действий,  условия  и  итераторов:  for 
(;;);.  В  этом  случае  нужно  предусмотреть  другой  способ 
прерывания  исполнения —  например,  с  помощью  break, 
goto или return. 
ид1 
ид2 
Услов
 
Тело Цикла 
ит1 
ит2 


95 
 
ЗАМЕЧАНИЕ 
Если условие изначально ложно, тело цикла может не выполниться ни разу, в 
отличие от инициализирующих действий. 
Цикл  for  часто  используется  для  эмуляции  стандартного  цикла  с 
параметром – цикла ДЛЯ других языков программирования, хотя им и не 
является  (в  строгом  смысле  слова).  Чтобы  превратить  его  в  цикл  с 
параметром,  необходимо,  чтобы  инициализирующие  действия  включали 
задание  начального  значения  переменной  цикла,  условие  относилось  к 
границе изменения параметра, а действия-итераторы включали изменение 
значения переменной цикла. Пример: 
/* умножение всех элементов массива на 2*/ 
for (i=0; iНесмотря  на  частое  использование  в  качестве  цикла  с  параметром, 
возможности  for  языка  программирования  Си  гораздо  шире.  Это 
иллюстрируют следующие примеры: 
/* пробег сразу двух массивов во встречных направлениях */ 
for (i=0,j=M; i=0; i++,j--) a[i]=b[j]; 
 
/* тело цикла пустое — все делают итераторы*/ 
for (i=0;iсброс массива */ 
ЗАМЕЧАНИЕ 
Программистам  не  рекомендуется  злоупотреблять  подобными  трюками, 
поскольку  они  затрудняют  понимание  программы  человеком  и  чреваты 
внесением трудноуловимых ошибок. 
С  помощью  цикла  for  могут  быть  эмулированы  и  стандартные  циклы 
вида  ПОКА  и  ДО  (читателю  предлагается  самостоятельно  разобраться, 
каким  образом).  Несмотря  на  это  отдельные  формы  этих  циклов  в  языке 
также  присутствуют,  примеры  можно  найти  в  главе  о  базовых 
конструкциях императивных языков. 
В  примере  используется  также  условный  оператор  языка  Си.  Его 
синтаксис выглядит следующим образом: 
if (<
условие>)  
    <
действие 1> 
else 
    <
действие 2>; 
В  случае  истинности  условия  (которое  может  быть  сложным,  где 
фигурируют несколько простых условий, связанных логическими связками 
И —  &&,  ИЛИ —  ||)  выполняются  <действия  1>,  в  качестве  которых 
может  выступать  один  оператор  или  группа  операторов,  заключенных  в 


96 
 
операторные скобки (фигурные скобки). Если условие не выполняется, то 
исполняется  <действие  2>.  Ветвь  ИНАЧЕ  (else)  может  отсутствовать. 
Этот случай соответствует сокращенному условному выражению, когда в 
случае ложности условия просто ничего не происходит. Пример: 
if (summa>0 && ostatok>0 && (!ograblenie())) vydat_dengi(); 
ЗАМЕЧАНИЕ 
Благодаря наличию в языке Си условного выражения иногда можно обойтись 
без использования оператора if. 
Кроме оператора if язык Си поддерживает оператор выбора, выглядящий 
следующим образом: 
switch(<
пер>

  case <
зн
1
>:<
действия
1
>;break; 
  case <
зн
2
>:<
действия
2
>;break; 
  case <
зн
3
>:<
действия
3
>;break; 
  … 
  [default:<
действия_если_ни_одно_не_подошло>] 

В  операторе  выбора  для  выбора  альтернативной  ветви  используется 
значение переменной в скобках после switch (переменная должна быть 
перечислимого  типа,  например  целочисленная).  Если  оно  совпадет  с 
<
зн
1
>
,  выполняются  <действия
1
>
,  если  со  <зн
2
>
 —  <
действия
2
>
 
и  т. д. 
Если  действия  включают  несколько  операторов,  последние  не 
заключаются в операторные скобки, а лишь записываются один за другим 
и  разделяются  точкой  с  запятой.  Строк  case  столько,  сколько  важных 
вариантов  должна  обработать  программа.  Иногда  в  оператор  выбора 
добавляется  строка  default,  содержащая  действия,  выполняемые,  если 
значение  переменной  не  совпало  ни  с  одним  из  <зн
i
>
.  Обработка 
иллюстрируется рис. 15. 
 
Рис. 15 


Достарыңызбен бөлісу:
1   ...   47   48   49   50   51   52   53   54   ...   81




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет