Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 12

Цикл, как правильно сформулировать условие выхода

28.08.2014, 13:44. Показов 1652. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу прошу прощения за простейшие вопросы, но книжка еще в пути, учусь самостоятельно, для себя. Скажите, почему не работает такой цикл?

for (int i = 1; i==5; i++);

Почему обязательно надо
C++
1
for (int i = 1; i>5; i++);?
И тут тоже почему не работает цикл?
C++
1
2
3
4
5
6
7
int i = 0;
    do 
    {
        cout << i << endl;
        i++;
    }
    while (i == 5);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2014, 13:44
Ответы с готовыми решениями:

Как сформулировать условие отбора
Здравствуйте. Я имею 2 таблицы: Ratings ID |ID_subject |Rate | Subject ID |Title | Поля Ratings.ID_subject и Subject.ID...

Тема диплома, как правильно сформулировать
Через два дня сдавать ТЗ (техническое задание), а тема диплома не определена. Хотела написать систему электронного документооборота (учусь...

Как сформулировать цикл для проверки и поздравления с Днем рождения?
Доброго времени суток! Необходимо считывать дату рождения из БД, сравнивать с текущей и если у этого человека ДР в ближайшие 2 дня -...

13
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
28.08.2014, 13:46
Цитата Сообщение от Brain Посмотреть сообщение
Почему обязательно надо
for (int i = 1; i>5; i++);?
так тоже не надо. А вообще, если книжки нет - есть инет, там все написано процикл for. Мне и самому надо его выучить тоже, а то оказалось что я его не знаю
0
4 / 4 / 0
Регистрация: 22.08.2014
Сообщений: 11
28.08.2014, 14:02
Brain, может так?
C++
1
2
3
4
5
6
7
8
int i = 0;
    do 
    {
        cout << i << endl;
        cin >>i;
        i++;
    }
    while (i == 5);
0
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 12
28.08.2014, 14:08  [ТС]
Цитата Сообщение от Алена13 Посмотреть сообщение
Brain, может так?
Ну тут вы предлагаете вводить каждый раз i, а вопрос почему именно i==5 не срабатывает. если ставишь i<=5, тогда все ОК.
0
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,565
28.08.2014, 14:12
Цитата Сообщение от Brain Посмотреть сообщение
Скажите, почему не работает такой цикл?
for (int i = 1; i==5; i++);
Потому что цикл будет выполняться до тех пор, пока выполняется условие. В данном случае, цикл должен продолжаться, пока i равно 5. Заметь, не станет равно 5, а постоянно должно быть == 5. После первого прохода, когда будет проверяться это условие, i будет равно 2, и цикл завершается.

Добавлено через 2 минуты
Цитата Сообщение от Brain Посмотреть сообщение
а вопрос почему именно i==5 не срабатывает. если ставишь i<=5, тогда все ОК.
Разница:
1. i == 5. Цикл продолжается, пока i остаётся равным 5.
2. i <= 5. Цикл продолжается, пока i меньше либо равно 5.
0
10 / 10 / 0
Регистрация: 18.08.2014
Сообщений: 58
28.08.2014, 14:13
такой цикл, следуя логике, ни разу не выполнится. Следует написать for(int i = 1; i < 5; i++). Отвечаю на первый вопрос, почему не i == 5, а обязательно i < 5, потому что в начале цикла переменной-счетчику i было присвоено значение 1, а во втором параметре вы проверяете равно ли i пяти, естественно не равно, потому что i равно 1. Вот поэтому цикл и не будет работать
0
2393 / 1922 / 763
Регистрация: 27.07.2012
Сообщений: 5,565
28.08.2014, 14:18
Цитата Сообщение от Alexander_1 Посмотреть сообщение
такой цикл, следуя логике, ни разу не выполнится.
Кстати, да. Тоже затупил, написал, что он 1 раз всё-таки выполнится.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.08.2014, 14:26
Цитата Сообщение от Brain Посмотреть сообщение
for (int i = 1; i==5; i++);
- алгоримт заходит в цикл, инициализирует счётчик i = 1 и проверяет условие продолжения цикла i == 5 (1 != 5) цикл завершается без захода
Цитата Сообщение от Brain Посмотреть сообщение
for (int i = 1; i>5; i++);?
алгоримт заходит в цикл, инициализирует счётчик i = 1 и проверяет условие продолжения цикла i == 5 (1 < 5, а в условии продоления i > 5), цикл завершается без захода в тело

Добавлено через 3 минуты
Цитата Сообщение от Brain Посмотреть сообщение
for (int i = 1; i < 5; i++);
- отдльно об этом
C++
1
2
3
4
5
int p = 0;
for( int i = 1; i < 5; i++ ); //пустой цикл эквивалетно for( int i = 1; i < 5; i++ ){}
{
     p++;//выполнится 1 раз , т.к пройдя пустой цикл алгоритм пройдёт здесь 1 раз (цикл перебили точкой с запятой)
}
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
28.08.2014, 16:49
Цитата Сообщение от _Ivana Посмотреть сообщение
так тоже не надо
Почему?
0
28.08.2014, 16:51

Не по теме:

Семен Семеныч!... :)

0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
28.08.2014, 16:54

Не по теме:

_Ivana, ? O_o



Добавлено через 45 секунд

Не по теме:

Ааа... Тьфу...

0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
28.08.2014, 16:54
Буквально выше же написано
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Цитата Сообщение от Brain Посмотреть сообщение
for (int i = 1; i>5; i++);?
алгоримт заходит в цикл, инициализирует счётчик i = 1 и проверяет условие продолжения цикла i == 5 (1 < 5, а в условии продоления i > 5), цикл завершается без захода в тело
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
28.08.2014, 16:56
Цитата Сообщение от _Ivana Посмотреть сообщение
Буквально выше же написано
Ага, уже дошло ))
0
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 12
28.08.2014, 21:29  [ТС]
Скажите, а как впихнуть сообщение в данный цикл, если пользователь вводит число более 3? Типа введите от 0 до 3.
C++
1
2
3
4
5
6
7
8
9
10
    int newarr[] = {10, 12, 15, 156};
    int id = 0;
    cout << "enter your ID# (from 0 to 3): ";
    do 
    {
    cin >> id;
    }
    while (id>3);
 
    cout << newarr[id];
Если в while добавляю: while (id>3, cout << "from 0 to 3: "); цикл не заканчивается при любых вводимых числах.

Добавлено через 2 минуты
А, сорри, туплю, просто в тело цикла нужно закинуть cout << "enter your ID# (from 0 to 3): ";
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.08.2014, 21:29
Помогаю со студенческими работами здесь

Подскажите как правильно сформулировать структуру базы данных для EF core
Всем привет! Делаю мобильное приложение. И тут захотел добавить систему комментариев. Суть вот в чём, есть некая статья, у неё есть...

Сформулировать условие
нужно, чтобы проверяло на наличие файла, если его нет выдавало сообщение пробывал так: if (!C://ss.txt){ ...

сформулировать условие
Здравствуйте!помогите пожалуйста.Нужно сформулировать условие задачи,которая решается в данном фрагменте программы.Спасибо большое:-* var...

Сформулировать условие
Здрасти:) Не могу сообразить, как правильно сформулировать условие в case. У меня постоянно поступает телеметрия, под параметром равному...

Сформулировать условие
Нужно сформулировать условия задач, решение ниже. type vector = array of real; var i, k, m, n : word; a: vector; begin ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru