Цикл с условием в Си.

11 сентября 2018 - Администратор

Когда не известно заранее  количество повторений цикла и  повторения нужно прекратить при  выполнении определенного условия, то используется в Си оператор While

while (условие)

{

// набор команд, который будет выполнятся  пока  соблюдается  условие

}

Если необходимо прекратить исполнение цикла при  выполнении условия, то используется  конструкция while (!(условие))

Данный цикл можно использовать для контроля вводимой информации. Например нужно запросить вес человека. При вводе этой информации необходимо проконтролировать, чтобы  вводимый параметр был больше нуля и меньше 700, т.е. ввод будет осуществляться до  тех пор,  пока он не попадет в указанный диапазон.

Пример программы 11. Ввод веса человека с контролем вводимых данных.

// контроль вводимого параметра

#include<iostream.h>

#include<conio.h>

int main()

{

   int  ves;// переменная отвечающая за вес

ves=0;// присваивается начальное значение веса

// запрашиваем вес до тех пор пока он не будет в диапазоне от 0 до 700

while(!(ves>0 && ves<700))

{

   printf("Введите  Ваш вес  \n");

   scanf("%d", &ves);

}

   printf("Ваш вес %d", ves);

   getch();           

}

Цикл while можно использовать  также для  запроса на продолжение выполнения программы.

Пример использования.

ans=1; // начальное  значение  ответа на продолжение программы

// пока ответ положительный  ans   равен 1, выполняется программа

while (ans==1)

{

//  команды программы

// запрос на продолжение выполнения команды

printf("Хотите продолжить выполнение программы?  1 -Да. 2 — Нет. \n");

  scanf("%d", &ans);

}

Пример программы 12. Тест на знание таблицы квадратов. Задается начальное значение,  с которого будет начат тест. С этого числа запрашиваются квадраты чисел. Ведется учет правильных ответов. В программе запрашивается вопрос на продолжение теста. После завершения теста выводится информация о количестве вопросов и правильных ответов.  

// тест на таблицу квадратов

#include<iostream.h>

#include<conio.h>

int main()

{

   int i;// счетчик цикла

   int b; //  начальное число

   int x;// ответ

   int stat;// счетчик количества вопросов

   int prav;// счетчик правильных ответов

   int ans; // ответ на вопрос о завершении теста

  // обнуляем счетчики

   prav=0;

   stat=0;

   // ввод начального числа теста

   printf("Введите начальное число\n ");

   scanf("%d", &b);

   // для прохождения первой итерации

   ans=1;

   //  выполняем тест пока ответ на продолжение игры ==1

   while (ans==1)

   {  

   stat=stat+1;// текущее число вопросов

   // вопрос теста спрашиваем квадрат текущего числа b

   printf("Введите  квадрат числа %d\n ", b);

   scanf("%d", &x);

   // проверка правильности ответа

    if (x==b*b) 

    { printf ("Правильно \n");

      prav=prav+1; // увеличиваем счетчик правильных ответов

                   }

    else

    {

      printf ("Неправильно\n "); 

    }

   b=b+1;// текущее число

   //  запрос на продолжение  теста

   printf("Хотите продолжить проверку?  1 -Да. 2 — Нет.\n ");

   scanf("%d", &ans);

   }

   // вывод результатов теста

   printf("Всего примеров %d  Правильных из них %d ",  stat, prav);

   getch();           

}

   Вернуться к содержанию     Перейти к следующему уроку Графика в Си.

Комментарии (0)

Нет комментариев. Ваш будет первым!