Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933

Не выходит из цикла

17.07.2015, 14:16. Показов 754. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не понимаю почему при значениях c,t,p,g не выходит из цикла. После ввода значения проверочное выражение получает false и дальше идет следующий оператор за while

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
#include<iostream>
int main()
{
    char choice;
    std::cout<<"Please enter one of the following\n "
                "\tc) carnivore p) pianist\n"
                "\tt) tree      g) game\n";
    std::cin>>choice;
    while (choice != ('c'||'p'||'t'||'g'))
    {
        std::cout<<"Please enter a c,p,t or g: ";
        std::cin>>choice;
    }
    
    switch (choice)
        {
        case 'c': std::cout<<"A maple is a carnivore\n";
        break;
        case 'p': std::cout<<"A maple is a pianist\n";
        break;
        case 't': std::cout<<"A maple is a tree\n";
        break;
        case 'g': std::cout<<"A maple is a game\n";
        break; 
        }
            
    
    return 0;
}
Вот так все норм но тут использую goto
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
#include<iostream>
int main()
{
    char choice;
    std::cout<<"Please enter one of the following\n "
                "\tc) carnivore p) pianist\n"
                "\tt) tree      g) game\n";
    
    std::cin>>choice;
    stop:
    switch (choice)
        {
        case 'c': std::cout<<"A maple is a carnivore\n";
        break;
        case 'p': std::cout<<"A maple is a pianist\n";
        break;
        case 't': std::cout<<"A maple is a tree\n";
        break;
        case 'g': std::cout<<"A maple is a game\n";
        break; 
        default: while (choice != ('c'||'p'||'t'||'g'))
        {
            std::cout<<"Please enter a c,p,t or g: ";
            std::cin>>choice;
            goto stop;
            }
        }   
    
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.07.2015, 14:16
Ответы с готовыми решениями:

Не выходит из цикла
Хотел написать простой код для считывания введенный в консоль через пробел чисел в вектор, но что-то пошло не так: читать читает, заносит,...

Не выходит из цикла
#include&lt;iostream&gt; using namespace std; float Pow(float x, int k); int main() { float x, sum = 0, y = 1, eps = 0.1; ...

Не выходит из цикла while
почему при нажатии (-1) не выходит из цикла? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;locale&gt; #include...

8
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
17.07.2015, 14:22
где так учат? каждое неравенство нужно отдельно прописать, ради интереса: cout<<('c'||'p'||'t'||'g')<<endl;
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
17.07.2015, 14:26  [ТС]
А что в нем не так?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
17.07.2015, 14:31
C++
1
while (choice != 'c'|| choice != 'p'|| choice != 't'|| choice != 'g'))
0
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
17.07.2015, 14:32
C++
1
while (choice != 'c' && choice != 'p' && choice != 't' && choice != 'g')
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
17.07.2015, 14:34  [ТС]
так даже если так из цикла то все равно не выходит
0
 Аватар для Zazy
47 / 47 / 23
Регистрация: 14.04.2013
Сообщений: 188
17.07.2015, 15:18
Покажите что у вас получилось(код)
0
58 / 62 / 34
Регистрация: 14.03.2014
Сообщений: 933
17.07.2015, 15:33  [ТС]
Zazy уже все норм)
0
-10 / 2 / 1
Регистрация: 08.01.2015
Сообщений: 325
17.07.2015, 15:43
Не знаю, что у Вас там не работает, но у меня все прекрасно работает.
http://rghost.ru/8bFlBTgNz/image.png
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
#include "stdafx.h"
#include "string"
#include <iostream>
 
using namespace std;
int main()
{
    char choice;
    std::cout << "Please enter one of the following\n "
        "\tc) carnivore p) pianist\n"
        "\tt) tree      g) game\n";
    std::cin >> choice;
    while (choice != 'c' && choice != 'p' && choice != 't' && choice != 'g')
    {
        std::cout << "Please enter a c,p,t or g: ";
        std::cin >> choice;
    }
 
    switch (choice)
    {
        case 'c': std::cout << "A maple is a carnivore\n";
            break;
        case 'p': std::cout << "A maple is a pianist\n";
            break;
        case 't': std::cout << "A maple is a tree\n";
            break;
        case 'g': std::cout << "A maple is a game\n";
            break;
    }
    system("pause");
    return 0;
}
P.S: Код из визуалки...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2015, 15:43
Помогаю со студенческими работами здесь

Не выходит из цикла
Доброго времени суток! При нажатии цифры &quot;1&quot;, а затем последовательно &quot;2&quot; z должно суммировать результат кейсов и выводить программу из...

Не выходит из цикла
После того, как вводятся 9 значений двумерного массива (матрицы), почему-то программа вместо последующего &quot;123&quot; выдает...

когда выходит из цикла
Ребят, есть программа (не моя) которая выводит слова которые есть в строке, совпадающую с каким то словом. Объясните плз, почему...

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

Почему прога не выходит из цикла?
#include &lt;stdio.h&gt; int main () {unsigned int s,a,k,n,min,max,kol; min=0; a=0; s=0; kol=0; max=0; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru