Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
PointsEqual
ниначмуроФ
840 / 524 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
1

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

26.09.2010, 03:24. Просмотров 853. Ответов 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
Ответы с готовыми решениями:

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

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

Выход из цикла
Ув. программисты я пишу крестики-нолики, но возникла некоторая проблема с...

Выход из цикла
Есть цикл. Он выполняется. Долго. Пока он выполняется я нажимаю Esc и он...

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

3
accept
4833 / 3255 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
26.09.2010, 06:52 2
под линем select() для stdin'а
0
Kastaneda
Jesus loves me
Эксперт С++
4937 / 3013 / 346
Регистрация: 12.12.2009
Сообщений: 7,609
Записей в блоге: 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
ниначмуроФ
840 / 524 / 110
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2010, 23:27

Выход за пределы цикла
Вообщем необходимо реализовать алгоритм по пунктам от 1 до 27 и в них есть...

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

Принудительный выход из цикла
Вообщем надо при определенном условии завершать вложенный цикл, такой код будет...


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

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

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