Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 74

If и Else

17.06.2013, 20:21. Показов 2589. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил "поиграться" с этими двумя операторами, в итоге должна была выйти программка - вопросник, сначала у меня не получился этот вопрос, теперь вышло, но несколько не так. При выборе D должно было писаться Perfect!, а пишется Bad... very bad... , но при этом, если выбрать любой другой вариант - пишется Perfect! Не подскажите, как это исправить? Код ниже:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <windows.h>
 using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    
    char s;
    char d;
    char y;
    char x;
 
    cout << "Какая земля по форме? S = Круглая, D = Сфера, Y = Плоская, X = Что такое земля?" << endl;
    if (cin >> d)
        cout <<"Perfect!" << endl;
    if (cin >> s || cin >> y || cin >> x) 
        cout << "Bad... very bad..." << endl;
 
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2013, 20:21
Ответы с готовыми решениями:

Ошибка с else/else if в коде
Подчеркивает else(else if все нормально), ошибка:требуется оператор. Как с этим бороться?) Заранее спасибо. ............ case'f':...

Связка операторов else if и if else
оператор else if и if else какая между ними разница?

Разница между if else и else if
Привет, у меня возник &quot;нубский&quot; вопрос. Этот код, это же соркащенная версия нижнего? int i = 3; if (i == 1) ...

37
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 74
18.06.2013, 19:50  [ТС]
Студворк — интернет-сервис помощи студентам
Wolkodav, как Вы уже, наверное, заметили, я хочу написать небольшой текстовый квест - игру. Т.к. я не обладаю навыками работы c 3D моделированием и PS, то ограничусь пока этим. Так вот, предположительно - сюжет не линейный. А значит игроку должен быть дан выбор. Игра не в два действия, и поэтому обидно будет, если ее прохождение займет более часа-двух, нужна возможность сохранения. Вот я и задал вопрос, как можно сохранять в определенный момент или же давать право игроку выбирать момент сохранения, к примеру написав посреди игры save.
Так же, то что про Землю скидывал программку - это как раз для примера мне, как делать, чтобы при выборе чего-либо не было выхода из программы, например кто-то попросил игрока доставить что-то куда-то, игроку в лом, и он отказался - на этом у меня обычно выходило из программы,да и при этом, хоть да, хоть нет пиши - было такое, что фразы выскакивали обе, в любом случае. Пока что более вопросов вроде нет))
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
18.06.2013, 20:00
Не goto тут не покатит, как вы программно поставите метку на том месте где сохранились? Тут лучше после каждой миссии или еще чего спрашивать, не хочет ли игрок сохранится, и записывать там номер миссии или чего в файл, а потом при загрузке игры, загружать и значение файла. Для каждой миссии написать функцию, и в switch-case при загрузке выбирать номер нужной миссии. Идея примерно понятна?
0
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 74
18.06.2013, 20:12  [ТС]
Да... ко мне уже приходила идея писать в файл и считывать все с файла при запуске, если я правильно понял, то нужно будет, чтобы была проверка в самом начале кода. Switch - если я не ошибаюсь, позволяет при разных значениях выводить разные решения, для каждого значения - свое решение, только вот switch-case я не знаю что это, и тем более не знаю синтаксиса. Написать функцию - дело хорошее, а как эта функция будет выглядить?)) Если уж не захотите писать ее, может быть расскажите о ней?)) Пожалуйста)
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
18.06.2013, 20:18
switch-case - вас отсылаю к гуглу.
А так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//бла-бла 
void Mission1()
{
}
 
void Mission2()
{
}
// и т.д.
 
int main()
{
//бла-бла-бла
switch(/* тут что-то*/)
{
case 1: Mission1();break;
case 2: Mission2();break;
//и т.д
}
return 0;
}
Вот такая примерно схема. А в Mission, я не знаю как у вас там игра будет. Просто описывается действие которые происходит в данной функции.
1
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 74
18.06.2013, 20:20  [ТС]
Спасибо
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
18.06.2013, 20:22
Corax111, по хорошему, надо еще создавать много файловый проект, с заголовочными файлами и т.д.
0
 Аватар для Ezembi
100 / 87 / 17
Регистрация: 29.05.2013
Сообщений: 227
18.06.2013, 21:46
я имел ввиду делать примерно так:
при загрузке сохранёнки загружается из файла номер метки например 10
(обзавём эту переменную int met)
met=10
и кидаем по goto на нужную метку
C++
1
2
3
4
5
6
7
switch(met)
{
case 1: goto метка1;break;
...
case 10: goto метка10;break;
...
}
а сама игра будет выглядеть как огромная куча if-ов
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
if(yes/no)
{
met=1;
метка1:
задаём опять вопрос
     if(yes/no)
     {
       met=3;
       метка4:
       задаём опять вопрос
       ....
           // много if-ов спустя //
           if(yes/no)
           {
           met=10;
           метка10:
           задаём опять вопрос   //и мы продолжаем играть с того момента, где сохранились в последний раз
           ...
           }
      }
      else
      {
       met=4;
       метка4:
       задаём опять вопрос
       ...
      }
}
else
{
met=2;
метка2:
задаём опять вопрос
...
}
получается,что когда мы сохраним нашу met и загрузим её, то мы перейдём на тот вопрос на котором сохранились
дерзайте
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
18.06.2013, 21:50
case лучше кучи if это факт, а если есть номер у вопроса, то можно по case перейти к тому вопросу, который нужен.
0
 Аватар для Ezembi
100 / 87 / 17
Регистрация: 29.05.2013
Сообщений: 227
18.06.2013, 21:55
Если как вы предлагаете через switch и case, то их тоже будет не меньше чем if-ов (через switch вариантов ответов можно больше поставить), и тогда в каждой Mission будут ещё свечи, которые будут вызывать новые Mission и т.д. и т.п. ...
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
18.06.2013, 21:57
а много-много if в одном main лучше по вашему? Плюс метки?
0
 Аватар для Ezembi
100 / 87 / 17
Регистрация: 29.05.2013
Сообщений: 227
18.06.2013, 22:05
через метки для начинающих проще а if-ы можно заменить на switch, т.к. вариантов ответов можно больше поставить

Добавлено через 3 минуты
да и по метке в п/п не перейдёшь, поэтому как ни печально всё в одном main будет
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
18.06.2013, 22:18
Зато можно передать в функцию условие, и перейти в функции по case) А goto в С++ делать нечего, даже начинающим)
0
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 74
18.06.2013, 22:52  [ТС]
Wolkodav, я прекрасно понимаю, что многофайловый проект создать - это хорошо, по-хорошему и иллюстрации какие-то можно было бы вставить, и сделать полноценную игрушку, проблема лишь в том, что я не имею ни малейшего понятия, как делать многофайловый проект, точнее не знаю, как все файлы связать друг с другом) Я прекрасно понимаю, любой догадается, что огромный минус - писать всю программу\сайт в одном файле. Тяжело для восприятия, возможно дольше грузится... огромное количество переменных объявлять надо для каждой подпрограммы, и может быть для новых уровней... Может напишите гайд, как это делать, если вам не сложно?))
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
18.06.2013, 23:04
У вас IDE какая?

Добавлено через 11 минут
Эмм, вопрос наверное не понят. Где пишите? MS Visual Studia?
0
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 74
18.06.2013, 23:16  [ТС]
Да, MS Visual Studio 10 Professional

Добавлено через 13 секунд
Уточнил, т.к. не знаю, есть ли между ними разница)
0
 Аватар для Wolkodav
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
18.06.2013, 23:23
Corax111, давайте попробую)
0
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 74
19.06.2013, 09:58  [ТС]
Вот вопрос, почему пишет, что перед ) не хватает ; , и недопустимый else без парного if, компилятор ослеп? Я уже даже 2 if написал, и все равно(
И хотелось еще спросить, в чем разница между release и debug?))

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int i = 10;
int c = 3;
char f;
 
for ( i > c)
    c = c+2;
if (c == i)
    i = ++i;
cout << c << endl;
else    
    cout << i << c << endl;
if ( i != 25)
    i = +3;
cout << i << endl;
0
 Аватар для Ezembi
100 / 87 / 17
Регистрация: 29.05.2013
Сообщений: 227
19.06.2013, 10:18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int i = 10;
int c = 3;
char f;
 
for ( i > c)
    c = c+2;
if (c == i)
{
    i = ++i;
cout << c << endl;
}
else    
    cout << i << c << endl;
if ( i != 25)
    i = +3;
cout << i << endl;
после операндов if else for while выполняется только один следующий оператор для того, чтоб выполнялось несколько необходимо объединять их в {}

Добавлено через 4 минуты
и ещё (не заметил) for ( i > c) так нельзя for(i=0;i>c;i++) необходимо 3 значения в for(стартовое значение переменной;когда выходим из цикла?;что делаем с какой-либо переменной после каждого прохода по циклу)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2013, 10:18

Почему операторы "if else" ставят в одну строку, к примеру: else if (BMI <=25)???
Ребят почему операторы if else ставят в одну строку??? К примеру: else if (BMI &lt;=25)

программа ругается что нет парного if для else и для предпоследнего else требуется оператор visual studio 2019
#include &lt;iostream&gt; #include &lt;clocale&gt; #include &lt;math.h&gt; #include &lt;cstdlib&gt; int main() { using namespace std; ...

Как писать if else if else , стиль
Есть два варианта, какой лучше? не могу определиться, чтобы была максимальная читабельность if (a &lt; 10) cout &lt;&lt; a...

Не выполняется ветка else
Здравствуйте, прошу о помощи.Вот программа-микрокалькулятор.Необходимо, что бы после ввода знака операции шел запрос на ввод одного или 2х-...

Вопрос по if, else?
Как сделать так чтобы программа работала по таком принципу: 1. Проверяется первое условие если оно верно - выводится оператор за ним. ...


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru