Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
1

Уточнение о том как работает оператор for

02.08.2015, 23:48. Показов 1650. Ответов 5
Метки нет (Все метки)

Я правильно понимаю? Оператор for, сперва будет работать только с первым выражением до тех пор, пока оно не станет ложным не переходя ко второму. После того как первое выражение станет ложным, начнётся выполнение второго выражения.

for(условие продолжения-окончания цикла)
Выражение1;
Выражение2;
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2015, 23:48
Ответы с готовыми решениями:

Уточнение как работает getchar();
Я ввёл 4 символа в оператор getchar(); и нажал <Enter>. Количество введённый символов получается 5?...

Где можно почитать о том, как устроена Windows? Как она работает и т.д.?
Есть книги такие?

Как разобраться в том что за электродвигатель и как он работает
Здравствуйте! Помогите пожалуйста разобраться в том что это такое. Как называется, можно ли купить,...

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

5
Заблокирован
02.08.2015, 23:55 2
Нет, оператор будет работать всегда с одной строчкой кода следующей после него - повторяя ее вызов столько раз сколько задано. Потом код пойдет выполняться дальше, ну там вторую команду выполнит компилятор и так далее. Еще можно заключать команды в фигурные скобки, тогда они выполняються сверху вниз, потом опять проход сверху вниз - столько раз сколько в цикле задано). И оператору совершенно наплевать что там возвращает команда - ложь или истину или вообще ничего.
1
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
03.08.2015, 00:03  [ТС] 3
Тогда как объяснить это. Printf должен выполнятся несколько раз а не 1.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#pragma hdstop
#include <stdio.h>
#include <conio.h>
 
int main()
{
    int far;
    float cels;
    for(far=0; far<=300; far=far+20)
    cels=(5.0/9.0)*(far-32.0);
    printf("%d - %f\n",far,cels);
getch();
}
0
2733 / 1892 / 564
Регистрация: 05.06.2014
Сообщений: 5,526
03.08.2015, 00:10 4
Лучший ответ Сообщение было отмечено Aqua77 как решение

Решение

Цитата Сообщение от Aqua77 Посмотреть сообщение
Тогда как объяснить это. Printf должен выполнятся несколько раз а не 1.
Заключите в фигурные скобки ( {} ) кусок кода, который надо повторять.
2
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
03.08.2015, 00:14  [ТС] 5
О да, спасибо. Я уже все варианты прокрутил. Забыл что фигурные скобки не ставятся только когда 1 оператор.
0
Эксперт CЭксперт С++
5072 / 2257 / 331
Регистрация: 20.02.2013
Сообщений: 5,595
Записей в блоге: 19
03.08.2015, 06:46 6
Цитата Сообщение от Aqua77 Посмотреть сообщение
Я правильно понимаю? Оператор for, сперва будет работать только с первым выражением до тех пор, пока оно не станет ложным не переходя ко второму. После того как первое выражение станет ложным, начнётся выполнение второго выражения.
Нет, неправильно.

Цитата Сообщение от Aqua77 Посмотреть сообщение
for(условие продолжения-окончания цикла)
Выражение1;
Выражение2;
Оператор (statement) for работает так:
C++
1
2
3
4
for (инструкция1; условие; инструкция2)
{
    инструкция3;
}
Где
инструкция1 - чаще всего, установка счётчика;
условие - инструкция, которую можно прочитать так: до тех пор, пока условие истинно, выполнять тело цикла;
инструкция2 - чаще всего, увеличение (или уменьшение) счётчика;
инструкция3 - инструкция (statement) // в теле цикла может быть несколько инструкций

То есть, оператор for работает и с инструкцией1, и с условием, и с инструкцией2, и с инструкцией3. И делает это в такой последовательности:
первый виток цикла:
  • выполняется инструкция1
  • проверяется условие
  • если условие == TRUE, то выполняется инструкция3
  • выполняется инструкция2
второй виток цикла:
  • проверяется условие
  • если условие == TRUE, то выполняется инструкция3
  • выполняется инструкция2
третий виток цикла:
  • см. второй виток
И так до тех пор, пока условие не станет FALSE. Как только это произойдёт, цикл прекращается.

Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
    const int LOOP_ENDS = 10;
 
    for (int i = 0; i < LOOP_ENDS; ++i)   // продолжать до тех пор, пока i меньше, чем LOOP_ENDS
    {   // эта фигурная скобка обозначает начало тела цикла
        int myVariable = i * i;
        std::cout << myVariable << std::endl;
    }   // эта фигурная скобка обозначает конец тела цикла
 
    return 0;
}
ещё пример:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main()
{
    const int LOOP_ENDS = 10;
 
    for (int i = 0, j = LOOP_ENDS; i < LOOP_ENDS; ++i, --j)
        std::cout << i * i << std::endl << j * j << std::endl;
 
    return 0;
}
ещё пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main()
{
    const int ELEVEN = 11;
 
    // продолжать цикл до тех пор, пока counter == TRUE
    // то есть, в нашем случае, до тех пор, пока он не станет равным нулю:
    for (int counter = ELEVEN; counter; --counter)
    {
        std::cout << "Now counter equals " << counter << std::endl;
    }
 
    std::cout << "\nThe counter equals 0. The loop has been finished.\n";
 
    return 0;
}
Добавлено через 8 минут
P.S. В литературе по C++ термин statement одни переводчики переводят как "инструкция", другие, как "оператор". Будьте внимательны: не путайте оператор (statement) и оператор (operator).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2015, 06:46

Как работает оператор new?
Есть вопрос по оператору new. Товарищ Джефри Рихтер в своей книге пишет про new следующее ...

Как работает оператор if?
Народ! Операция сравнения возвращает ЧИСЛО, т.е. while и if принимают ЧИСЛО (0 - false, etc -...

Как работает оператор ^= ?
Объясните пожалуйста доступным языком. Гугл не помог, серьёзно.

Как работает оператор new?
Обязательно ли использовать оператор delete в коде (см.ниже.).После использования оператора new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru