Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Автоматический выход из цикла. - C++

26.09.2010, 03:24. Просмотров 809. Ответов 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
int main()
{
    square s; //объект класса
    unsigned char ch;
 
     /*цикл 1*/
    while(true){
        Sleep(1000);
        s.erase(), s.move(down), s.draw(); //Автоматическое движение фигуры вниз
 
 
       /*цикл 2*/
        do {
            ch = getch();
            if (ch == 224){
                ch = getch();
                switch(ch){
                    case left:  s.erase(), s.move(left),  s.draw(); break;
                    case right: s.erase(), s.move(right), s.draw(); break;
                    case up:    s.erase(), s.move(up),    s.draw(); break;
                    case down:  s.erase(), s.move(down),  s.draw(); break;
                }
            }
        }
        while (ch != exit_tet); /*конец  цикл 2*/
 
    } /*конец  цикл 1*/
 
    return 0;
}
здесь, через каждую секунду, квадрат автоматически движется вниз по экрану, но при входе в /*цикл 2*/ программа все время ждет нажатия клавиши, что придумать чтобы по истечению например 2 сек. программа автоматически выходила из /*цикл 2*/ ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2010, 03:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Автоматический выход из цикла. (C++):

Автоматический вход-выход в windows - C++
Здравствуйте! Подскажите, как при определённом событии (таймер, автозагрузка) осуществить вход в windows? Например - включили...

Выход из цикла - C++
Ув. программисты я пишу крестики-нолики, но возникла некоторая проблема с циклами! for (t=0;t<100;t++) { for...

Выход из цикла - C++
Доброго времени суток. Подскажите, пожалуйста как сделать выход из цикла при нажатии 0 в меню. Пытался так на ESC, но не выходит. ...

С++ Выход из цикла - C++
Есть цикл, написанный в дополнительной функции. Нужно вывести сумму нескольких введенных чисел, если подходящей суммы нет,то вывести...

Выход из цикла - C++
Есть цикл. Он выполняется. Долго. Пока он выполняется я нажимаю Esc и он становится на паузу. Как осуществить? Добавлено через 10...

Выход из цикла из консоли - C++
В консольном приложении пользователь запускает цикл, выход из которого возможен только по инициативе пользователя. Как реализовать? ...

3
accept
4825 / 3246 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.09.2010, 06:52 #2
под линем select() для stdin'а
0
Kastaneda
Jesus loves me
Эксперт С++
4688 / 2892 / 236
Регистрация: 12.12.2009
Сообщений: 7,353
Записей в блоге: 2
Завершенные тесты: 1
26.09.2010, 08:36 #3
Цитата Сообщение от PointsEqual Посмотреть сообщение
что придумать чтобы по истечению например 2 сек. программа автоматически выходила из /*цикл 2*/ ?
При таком подходе цикл получается вообще не нужен) Конкретно для вашего кода можно сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 /*цикл 2*/
        do {
            ch = getch();
            if (ch == 224){
                ch = getch();
                switch(ch){
                    case left:  s.erase(), s.move(left),  s.draw(); break;
                    case right: s.erase(), s.move(right), s.draw(); break;
                    case up:    s.erase(), s.move(up),    s.draw(); break;
                    case down:  s.erase(), s.move(down),  s.draw(); break;
                }
            }
        Sleep(2000);}//ждем 2 секунды
        while (false); //и выходим))
0
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
26.09.2010, 23:27  [ТС] #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*цикл 2*/
 do {
 ch = getch();
 if (ch == 224){
 ch = getch();
 switch(ch){
 case left: s.erase(), s.move(left), s.draw(); break;
 case right: s.erase(), s.move(right), s.draw(); break;
 case up: s.erase(), s.move(up), s.draw(); break;
 case down: s.erase(), s.move(down), s.draw(); break;
 }
 }
 Sleep(2000);}//ждем 2 секунды
 while (false); //и выходим))
но таким способом фигура автоматически не движется, ( для этого и нужен был первый цикл1), и цикл 2 все равно ждет от пользователя ввод до тех пор пока он не нажмет клавишу, а нужно чтоб по истечению 2 секунд, если никакая кнопка не нажата то программа выходила из цикла 2

Добавлено через 32 секунды
Цитата Сообщение от accept Посмотреть сообщение
под линем select() для stdin'а
не, у меня win

Добавлено через 11 часов 49 минут
обычными средствами я так понимаю не получится этого сделать, может тогда использовать потоки/процессы как нибудь?
0
26.09.2010, 23:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2010, 23:27
Привет! Вот еще темы с ответами:

Принудительный выход из цикла - C++
Вообщем надо при определенном условии завершать вложенный цикл, такой код будет работать??? for(.....) { for(.....) { if...

Преждевременный выход из цикла - C++
#include <iostream> using namespace std; void enter_new_note (); void show_sheldue (); int x = 1; char Monday , Thuesday...

Принудительный выход из цикла - C++
Задача: пользователь вводит текст, если в тексте встречается запятая, вывести какая самая первая запятая по счету. вот мой код: ...

Выход из вложенного цикла - C++
Собственно как выходить из вложенного цикла ? goto ?


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

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

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