Основы программирования на С++ для начинающих

Цикл for в C++

for C++, for С++Как вы заметили в содержании, на главной странице сайта, в языке C++ применяются несколько видов циклов. Цикл for  мы рассмотрим первым, так как его легче понять новичкам, с моей точки зрения. А циклы while и do while, рассмотрены в отдельной статье.

Для начала, разберемся с тем, что означает  цикл в программировании. Цикл – это специальный оператор, с помощью которого происходит повторение определённого участка кода определённое количество раз (какой участок кода повторять и когда цикл должен прерваться – определяет программист). Еще одно определение предложил посетитель нашего сайта rrrFer: цикл – конструкция языка, предназначенная для организации повторного исполнения команд. Например, чтобы вывести на экран  числа от единицы до пятисот, можно использовать ручной вывод на экран:

ручной ввод (без цикла for)

Согласитесь – не самое интересное задание и представьте сколько пришлось бы прокручивать колесико мышки, чтобы добраться до конца кода.  А можно воспользоваться циклом for  и сократить, тем самым в десятки раз,  время на написание этой “интересной” программы и сам размер кода. Вот, как можно выполнить эту задачу с применением for:

Мы начинаем определять наш цикл в строке 6 . Для этого пишем ключевое слово for и за ним круглые скобки  () . В круглых скобках объявляется управляющая переменная (переменная-счетчик) i. В нашем случае, она инициализирована нулем. После инициализации стоит точка с запятой ; . Далее располагаем условие: i < 500 (оно означает, что пока i меньше 500, код в теле цикла будет повторяться) и снова точка с запятой ; . Именно оно и будет “говорить” программе до каких пор будет выполняться тело цикла (код в фигурных скобках {}). Напоследок указываем, как будет изменяться i  с каждым шагом цикла (у нас – увеличение на единицу, используя постфиксный инкремент). Если описать одним предложением, то, что расположено в круглых скобках, команда будет звучать так – выполнять тело цикла, пока переменная i   меньше  пятисот, увеличивая i на единицу, при каждом шаге цикла. Шаг цикла еще называют итерацией. А переменную-счетчик – управляющей переменной, так как она управляет количеством итераций.

Разберем для наглядности несколько шагов цикла из нашего примера. При первой итерации цикла управляющая переменная равна 0. Поэтому для вывода на экран единицы используем выражение i + 1 (0 + 1). Когда тело цикла выполнилось, происходит изменение (увеличение) управляющей переменной i  так, как мы указали в круглых скобках () после оператора for – то есть она становится равной единице. Вторая итерация начинается с проверки условия (у нас i < 500). Если i действительно  < 500, выполнение  тела  цикла  повторится – на экран снова покажется i + 1, что эквивалентно 1 + 1, то есть 2. Последний раз цикл выполнится, когда управляющая переменная будет равна 499 и на экран покажется значение i + 1 (499 + 1). После этого её значение снова увеличится на единицу, но условие повторения цикла уже не будет выполняться, так как i (500) уже не меньше 500.  После завершения работы цикла программа перейдет к выполнению следующей строки кода, расположенной за закрывающей } фигурной скобкой тела цикла. Результат выполнения программы посмотрите сами, запустив программу.

Управляющая переменная может как увеличиваться так и уменьшаться. В зависимости от того, какая задача поставлена перед программистом. Посмотрите на этот код. При его выполнении, на экране мы увидим числа, расположенные по убыванию, от 500 до 1. 

Не обязательно использовать постфиксный инкремент или декремент. Изменяем управляющую переменную так, как того требует задача. Это может быть ++i,  i += 2,  i += 20,  i -= 15… Например:

цикл for - управляющая переменная

управляющая переменная i  изменяется от 8 до 88 включительно, при этом шаг изменения равен 8. То есть сначала i = 8, на второй итерации 16 и так далее до 88.

цикл for - управляющая переменная

управляющая переменная i  изменяется от 3000 до 300 включительно, с уменьшением при каждой итерации на 300 (3000,  2700, 2400…)

цикл for c++, цикл for c++

управляющая переменная i  изменяется от 0  до 100 включительно, с увеличением при каждой итерации на 10. (0, 10, 20…100)

цикл for - управляющая переменная

управляющая переменная i  изменяется от 3000  до 3 включительно, с делением при каждой итерации на 10. (3000, 300, 30, 3)

В дополнение ко всему сказанному, хочу добавить, что все три, используемые в круглых скобках, выражения необязательны. Если сделать такую, к примеру, запись: for( ; ; ) – это будет воспринято компилятором, как запуск так называемого бесконечного цикла. Здесь нет ни управляющей переменной, ни условия продолжения цикла, ни изменения управляющей переменной. То есть цикл будет выполняться  бесконечно. В этом случае, чтобы все-таки как-то работать с таким циклом, управляющая переменная может быть определена до цикла, её изменение можно добавить в конец тела for, а условие продолжения цикла можно задать используя оператор if и оператор break. Вот как это будет выглядеть:

Отмечу, что существует такое понятие, как область видимости переменной. В этом примере область видимости переменной i – тело главной функции main(). А в предыдущих примерах, она ограничивалась телом цикла for  и за его приделами эта переменная уже была недоступна (к ней уже нельзя было обратиться – вывести её значение на экран, например)  Это надо иметь ввиду. Так как, если в программе встречаются несколько циклов и управляющие переменные определяются выше в коде, а не в круглых скобках () после операторов for , для каждой необходимо придумывать уникальное имя. Или каким-то другим образом выходить из этой ситуации.   Так что лучше пользоваться стандартным синтаксисом:

for ( определение управляющей переменной ;  условие повторения цикла  ;  изменение  управляющей  переменной  ) 

Так код читается легче, всё необходимое для работы цикла находится в пределах одной строки кода и сколько бы не было циклов в вашем коде, вам не придется утруждаться и придумывать новые имена для управляющих переменных.

Рекомендую посмотреть видео по теме. В нем рассмотрен и цикл while

Практика программирования по этой теме находится здесь – Задачи: Цикл for.

50 thoughts on “Цикл for в C++

  1. не проходит правильный вариант ответа ,подскажите ,ошибку не могу найти: #include
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “rus”);
    int digit1 = 0;//числа вводит пользователь
    int digit2 = 0;//вводит пользователь
    int result = 0;//переменная хранит результат умножения

    cout << "Введите два однозначных числа : " <> digit1;
    cin >> digit2;
    cout << " digit1 * digit2 = result : " << digit1 * digit2 << endl;
    system("cls");
    int answer = 0;
    cout << answer ;//результат умножения угадывает пользователь
    cout << "Угадайте результат умножения введенных вами двух чисел : " << endl;
    cout << "Вариант ответа в пределах (от1 до 81)" << endl;
    for(result = 1; result > answer;
    cout << result < result)
    {
    cout << "Вы дали неправильный ответ! Ваш другой вариант : ";
    }
    else if(answer < result)
    {
    cout << "Ваш ответ неверный , другие варианты : " << endl;
    }
    else
    {
    answer == result;
    break;
    cout << "Правильный вариант ответа!" << endl;
    }

    }

    return 0;

    1. Вот код:
      #include
      using namespace std;
      int main()
      {
      setlocale(LC_ALL, “ru”);

      int digit1 = 0;
      int digit2 = 0;
      int result = 0;
      int answer;

      cout << "Введите два однозначных числа : " digit1;
      cin>> digit2;
      if (digit1 >= 10 || digit2 >= 10) //ЕСЛИ какое-то из двух указанных переменных больше 10 или ровна 10 программа завершит свою работу. || OR
      {
      cout << "Вы ввели не однозначное число." << endl;
      return 0;
      }

      else
      {
      result = digit1 * digit2;// Умножаем числа которые мы ввели и присваиваем их в переменную result;
      system("cls");
      cout << "Угадайте результат умножения введенных вами двух чисел : " << endl;

      cout << "Вариант ответа в пределах (от1 до 81)" answer;
      if (!(answer == result)) // ЕСЛИ answer НЕ ровна result
      {
      cout << "К сожалению ответ неверный, правильный ответ: " << result << endl;
      }
      else
      {
      cout << "Вы молодец! вы отгадали число" << endl;
      }
      }
      }

  2. Вот код:
    #include
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “ru”);

    int digit1 = 0;
    int digit2 = 0;
    int result = 0;
    int answer;

    cout << "Введите два однозначных числа : " <> digit1;
    cin>> digit2;
    if (digit1 >= 10 || digit2 >= 10) //ЕСЛИ какое-то из двух указанных переменных больше 10 или ровна 10 программа завершит свою работу. || OR
    {
    cout << "Вы ввели не однозначное число." << endl;
    return 0;
    }

    else
    {
    result = digit1 * digit2;// Умножаем числа которые мы ввели и присваиваем их в переменную result;
    system("cls");
    cout << "Угадайте результат умножения введенных вами двух чисел : " << endl;

    cout << "Вариант ответа в пределах (от1 до 81)" <> answer;
    if (!(answer == result)) // ЕСЛИ answer НЕ ровна result
    {
    cout << "К сожалению ответ неверный, правильный ответ: " << result << endl;
    }
    else
    {
    cout << "Вы молодец! вы отгадали число" << endl;
    }
    }
    }

  3. cout << i+1 << endl;
    as I understand the loop body starts spinning from 1
    if there is another number, then the answer will start from it

  4. int main()
    {
    int a = 0;
    int b = 0;

    cout << " mention of number " <> a;

    cout << a << endl;

    cout << endl;
    {
    for (a = 0; a < 10; a++)

    cout << a + 1 << endl;
    }

    return 0;
    }
    "for" ignoring variable after "cin" changed one ?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *