Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Alex Kireev
5 / 10 / 1
Регистрация: 21.11.2017
Сообщений: 108
1

Остановка цикла do while

15.02.2018, 23:47. Просмотров 959. Ответов 12
Метки нет (Все метки)

При вводе любого числа кроме 1; 2; 3; цикл должен повторяться, иначе останавливаться.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
using namespace std;
int main()
{
    bool x;
    do
    {
         while (true)
         {
    cout << "Выберите цвет текста:\n"            
                             "                     +===============================+\n"
                             "                     |  1. светло-синий              |\n" 
                             "                     +===============================+\n"
                             "                     |  2. светло-зеленый            |\n"
                             "                     +===============================+\n"
                             "                     |  3. светло-красный            |\n"
                             "                     +===============================+\n";                             
    
    cin >> x;
    switch (x)
    {
           case 1:
           system ("color 9");
           break;
           
           case 2:
           system ("color a");
           break;
           
           case 3:
           system ("color c");
           break;
 
           
    default:
    cout << "Такого цвета нет.\n";
}
}
}while (!x);
cout << "Внимание \n Спасибо за внимание \n";
system ("pause");
return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2018, 23:47
Ответы с готовыми решениями:

Остановка цикла do while
Доброго времени суток. Столкнулся с такой проблемой в решении задачи: Дана числовая...

Почему происходит остановка цикла?
Подскажите почему при заполнении массива строками длиной от 5 символов, происходит остановка цикла?...

sdl остановка цикла отрисовки кадров
Сабж есть цикл отрисовки кадров: for(i = 0; i &lt; FRAMES; i++) { src.x = 0; src.y = 0;...

Запуск\остановка цикла по нажатию клавиши
Всем привет! Вопрос как реализовать запуск и остановку цикла в консольном приложении по нажатию...

Остановка цикла
Работаю на форме. Программа для имитации набора текста. При запуске основного цикла по набору...

12
1Вирт1
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 793
Завершенные тесты: 5
16.02.2018, 00:00 2
Лучший ответ Сообщение было отмечено Alex Kireev как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 bool x;
...
    cin >> x;
    switch (x)
    {
           case 1:
           system ("color 9");
           break;
           
           case 2:
           system ("color a");
           break;
           
           case 3:
           system ("color c");
           break;
 
           
    default:
    cout << "Такого цвета нет.\n";
}
вот это у Вас работать не будеть обьявите х как инт

Добавлено через 1 минуту
C++
1
while (!x);
замените на
C++
1
while (x<= 3 && x>=1);
1
Alex Kireev
5 / 10 / 1
Регистрация: 21.11.2017
Сообщений: 108
16.02.2018, 00:01  [ТС] 3
Цитата Сообщение от 1Вирт1 Посмотреть сообщение
вот это у Вас работать не будеть обьявите х как инт
Большое спасибо.
Чет затупил, а все оказалось элементарно.
0
Trell
6 / 7 / 3
Регистрация: 24.05.2017
Сообщений: 10
Завершенные тесты: 1
16.02.2018, 00:06 4
емм.. а где выход из цикла while (true) ?, он же никогда не закончиться...

Добавлено через 1 минуту
даже если не правильное значение x, просто, я так понял, вам надо остановить её роботу
1
16.02.2018, 00:06
1Вирт1
184 / 192 / 48
Регистрация: 25.08.2011
Сообщений: 793
Завершенные тесты: 5
16.02.2018, 00:06 5
C++
1
while(true)
вообще убрать
1
Alex Kireev
5 / 10 / 1
Регистрация: 21.11.2017
Сообщений: 108
16.02.2018, 00:18  [ТС] 6
Что то я совсем запутался.
Цитата Сообщение от Trell Посмотреть сообщение
а где выход из цикла while (true) ?, он же никогда не закончиться...
цикл должен закончиться когда ведено одно из чисел 1; 2; 3.

Добавлено через 5 минут
Цитата Сообщение от alex_kireev Посмотреть сообщение
При вводе любого числа кроме 1; 2; 3; цикл должен повторяться, иначе останавливаться.
То есть выход из цикла происходит когда вели или 1 лил 2 или 3.
0
Trell
6 / 7 / 3
Регистрация: 24.05.2017
Сообщений: 10
Завершенные тесты: 1
16.02.2018, 00:22 7
да нет цикл снова по обратной пойдет, програма не остановится.
1
Alex Kireev
5 / 10 / 1
Регистрация: 21.11.2017
Сообщений: 108
16.02.2018, 00:28  [ТС] 8
Цитата Сообщение от Trell Посмотреть сообщение
да нет цикл снова по обратной пойдет, програма не остановится.
Это я понял, а как сделать чтоб он остановился?

Добавлено через 46 секунд
Создавать ещё одно условие или можно как нибудь по другому?
0
Trell
6 / 7 / 3
Регистрация: 24.05.2017
Сообщений: 10
Завершенные тесты: 1
16.02.2018, 00:33 9
Лучший ответ Сообщение было отмечено Alex Kireev как решение

Решение

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
int main()
{
    int x;
    do
    {
         
    cout << "Выберите цвет текста:\n"            
                             "                     +===============================+\n"
                             "                     |  1. светло-синий              |\n" 
                             "                     +===============================+\n"
                             "                     |  2. светло-зеленый            |\n"
                             "                     +===============================+\n"
                             "                     |  3. светло-красный            |\n"
                             "                     +===============================+\n";                             
    
    cin >> x;
    switch (x)
    {
           case 1:
           system ("color 9");
           break;
           
           case 2:
           system ("color a");
           break;
           
           case 3:
           system ("color c");
           break;
 
           
    default:
{
    cout << "Такого цвета нет.\n";
    x=-1;
}
}
}while (x!=-1);
cout << "Внимание \n Спасибо за внимание \n";
system ("pause");
return 0;
}
Добавлено через 2 минуты
как вариант
1
Alex Kireev
5 / 10 / 1
Регистрация: 21.11.2017
Сообщений: 108
16.02.2018, 00:35  [ТС] 10
Не работает.
Но все равно спасибо, теперь я понял в каком направлении надо идти.
Всем спасибо за помощь.
0
Trell
6 / 7 / 3
Регистрация: 24.05.2017
Сообщений: 10
Завершенные тесты: 1
16.02.2018, 00:37 11
удачи
0
Alex Kireev
5 / 10 / 1
Регистрация: 21.11.2017
Сообщений: 108
16.02.2018, 00:39  [ТС] 12
Цитата Сообщение от Trell Посмотреть сообщение
удачи
Взаимно.
0
ValeryS
Модератор
7944 / 5915 / 783
Регистрация: 14.02.2011
Сообщений: 20,347
Завершенные тесты: 1
16.02.2018, 01:05 13
Лучший ответ Сообщение было отмечено Alex Kireev как решение

Решение

Цитата Сообщение от Trell Посмотреть сообщение
}while (x!=-1);
может все таки
C++
1
while (x==-1);
1
16.02.2018, 01:05
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2018, 01:05

Остановка цикла
Здравствуйте. Как в консольном приложении остановить цикл например на 3сек, но так, чтобы...

Пользовательская остановка цикла.
В моей программе есть циклы которые выполняются очень долго. Помогите пожалуйста сделать так, чтобы...

Остановка цикла по кнопке
Вообщем столкнулся с такой проблемой. Есть кнопка1 которая запускает бесконечный цикл который...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.