|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.09.2009, 16:28 | #1 |
Пользователь
Регистрация: 08.09.2009
Сообщений: 28
|
цикл for
Обьясните плиз как работает цыкл не могу понять и нигде не описанно(
например такой код Код:
Не пойму как работает сама конструкция for (int x=1; x<=10; x++) Тоесть проверяеться условие x=1 и цыкл работает покамисть x<=10 и при каждой итерации x++, но например при первом вхождении x++ тоесть он сразу становиться 2 тоесть результат скрипта должен быть 2 3 4. Обьясните кто нить у мну не написано ответа на мой вопрос Последний раз редактировалось Sazary; 18.09.2009 в 18:31. |
18.09.2009, 16:40 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Во-первых, правильно будет цИкл.
Во-вторых, x++ увеличивает x на единицу, но возвращает неувеличенное значение (напр., x = 1; y = x++; z = x; будет y == 1, z ==2) Т.е. в теле цикла используется еще неизмененное значение.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
18.09.2009, 16:53 | #3 |
Пользователь
Регистрация: 15.08.2009
Сообщений: 37
|
1. На первом шаге единственный раз объявляется и инициализируется переменная цикла x. Потом выполняется проверка x<=10. Условие истинно, поэтому выполняется тело цикла.
2. После выполнения тела, на втором и последующих шагах: х++; x <= 10; тело цикла Именно в таком порядке. |
18.09.2009, 16:55 | #4 |
Пользователь
Регистрация: 08.09.2009
Сообщений: 28
|
Да но x++ єто же не проверка, а значит должно работать как обычная операция цикла, тоесть x+1 и дальше.Ведь x++ некому не возвращает значение!
|
18.09.2009, 16:58 | #5 |
Пользователь
Регистрация: 15.08.2009
Сообщений: 37
|
х++ в данном случае просто увеличивает значение х на 1.
|
18.09.2009, 17:15 | #6 |
Пользователь
Регистрация: 08.09.2009
Сообщений: 28
|
Ну я по этому и говорю какая разница тут какая форма постфиксаная или префиксная всё равно увеличение на 1 должна идти в тело цикла.
|
18.09.2009, 19:14 | #7 | |
Пользователь
Регистрация: 30.05.2009
Сообщений: 46
|
Цитата:
Начианя со второго шага. первый шаг цикла: инициализация(int x=1) сравнение(x<=10) выполненяется тело цикла(или не выполняется, естественно, в зависимости от предыдущего условия) второй шаг цикла(и последующие) инкремент(x++) сравнение(x<=10) опять же выполненяется тело цикла(или не выполняется...) |
|
18.09.2009, 19:41 | #8 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
|
18.09.2009, 20:17 | #9 |
Пользователь
Регистрация: 08.09.2009
Сообщений: 28
|
А можно поинтересоваться где там безполезная трата ресурсов?
Последний раз редактировалось Hanickii; 18.09.2009 в 20:32. |
18.09.2009, 23:32 | #10 |
Пользователь
Регистрация: 19.06.2009
Сообщений: 57
|
1. вводишь переменную-счётчик
2. проверяешь значение переменной-счётчика 3. выполняешь тело цикла... 4. увеличиваешь счётчик на 1 (если оператор ++ постфиксный), если же имеется ++x, то сначала увеличивается х, а потом выполняется тело цикла |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
цикл | Aqil_f | Microsoft Office Excel | 2 | 10.06.2009 15:40 |
цикл if... then..else | DeDoK | Общие вопросы Delphi | 8 | 11.10.2008 11:31 |
Цикл | Sota | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 24.03.2008 19:50 |
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) | Mr.User | Помощь студентам | 9 | 23.11.2007 01:34 |