Не могу разобраться, как работает оператор for. Написал перебор чисел от x1 до x2 с помощью while, но теперь хочу заменить while на for. Не могу разобраться, как это сделать, не меняя сути программы. Буду благодарен за пояснения. Вот код:
#include
int main()
{
int x1, x2;
std::cout << "Enter the limits:" << std::endl;
std::cin >> x1 >> x2;
if (x1 <= x2)
{
while (x1 <= x2)
{
std::cout <<" " << x1 << std::endl;
++x1;
}
}
else
{
std::cout << "Error: The first one must be less than the second one or equal. Also they both must be numbers and integral." << std::endl;
std::cout << "Finishing programm due to mistake (your most likely)." << std::endl;
}
system("pause");
return 0;
}
Другие языки программирования и технологии
Азы C++: "while" заменяем на "for"
for ( ; x1 <= x2; ++x1)
{
std::cout <<" " << x1 << std::endl;
}
{
std::cout <<" " << x1 << std::endl;
}
while (x1 <= x2) эквивалентен for(;x1 <= x2;)
while - это упрощенный for. В for внутрь заголовка цикла может быть вставлено то, что в while обычно делается отдельными операторами перед циклом while и внутри него.
while - это упрощенный for. В for внутрь заголовка цикла может быть вставлено то, что в while обычно делается отдельными операторами перед циклом while и внутри него.
Не могу разобраться- это действительно серьезно. Почитайте книжку для новичков, там оператор for прекрасно описан с диаграммами. Отрывочные знания никому не нужны.


Грубо
----
уcтановить_значения;
while(условие_на_неноль) {
действие;
преобразовать (значения_для условий);
}
----
Примерно совпадает с
for(уcтановить_значения : условие_на_неноль_делать_ли: после_деланья_начинки_сделать_что_угодно_обычно_преобразовать_значения_для условий) {действие; }
(затравка : пока не ноль рассматриваемое : после деланья перед новым заходом сделать) {что делать}
----
уcтановить_значения;
while(условие_на_неноль) {
действие;
преобразовать (значения_для условий);
}
----
Примерно совпадает с
for(уcтановить_значения : условие_на_неноль_делать_ли: после_деланья_начинки_сделать_что_угодно_обычно_преобразовать_значения_для условий) {действие; }
(затравка : пока не ноль рассматриваемое : после деланья перед новым заходом сделать) {что делать}
"Не могу разобраться, как работает оператор for" - это серьезно.
Конструкция for состоит из трех частей
for(int i = 0; i < 10; i++)
1 - int i = 0 - начало цикла
2 - i < 10 - цикл продолжается, пока переменная i меньше 10
3 - i++ -инкрементация переменной i
Что тут непонятного?
Конструкция for состоит из трех частей
for(int i = 0; i < 10; i++)
1 - int i = 0 - начало цикла
2 - i < 10 - цикл продолжается, пока переменная i меньше 10
3 - i++ -инкрементация переменной i
Что тут непонятного?
Уркунов Владислав
Да, неправильно выразился. Суть понимаю, не мог (благодаря менторам выше, теперь могу) заменить этим оператором while в данной проге. Не знал куда вставить вывод перебора.
#include
int main()
{
int x1, x2, i;
std::cout << "Enter the limits:" << std::endl;
std::cin >> x1 >> x2;
if (x1 <= x2)
{
for (i=x1; x1<=x2; i++)
{
std::cout <<" " << x1 << std::endl;
}
}
else
{
std::cout << "Error: The first one must be less than the second one or equal. Also they both must be numbers and integral." << std::endl;
std::cout << "Finishing programm due to mistake (your most likely)." << std::endl;
}
system("pause");
return 0;
}
int main()
{
int x1, x2, i;
std::cout << "Enter the limits:" << std::endl;
std::cin >> x1 >> x2;
if (x1 <= x2)
{
for (i=x1; x1<=x2; i++)
{
std::cout <<" " << x1 << std::endl;
}
}
else
{
std::cout << "Error: The first one must be less than the second one or equal. Also they both must be numbers and integral." << std::endl;
std::cout << "Finishing programm due to mistake (your most likely)." << std::endl;
}
system("pause");
return 0;
}
Виктор Чарный
у вас бесконечный цикл получился
Радик Сайфутдинов
Тогда уж x1+=i; в цикле нужно добавить)
Похожие вопросы
- C++, написать программу, цикл for Программа, которая определяет является ли введенное число простым.
- Как можно написать программу на языке C, которая будет выводить числа от 1 до 1000 без if, switch, do, while, for, goto?
- Помогите с кодом C#. Нужно удалять из строк начальные пробелы с помощью while, if, for, без специальных методов
- for и while всегда обрабатывают формулы? С++
- for or while?c++
- Паскаль. For, while, repeat, until, min/max, div/mod.
- Помогите пожалуйста разобраться с циклом while c++
- C#.Цикл while и метод ReadLine()
- решите, пожалуйста, задачу на языке с с помощью циклов (for, while, do...while)
- Сколько всего существует еще циклов, кроме for, while, do while ???