Форум программистов, компьютерный форум CyberForum.ru

Не могу справиться с if! - C++

Восстановить пароль Регистрация
 
 
Darell_ldark
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 11
02.08.2013, 13:41     Не могу справиться с if! #1
Вот код:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream.h>
#include <stdio.h>
int main()
{
 using namespace std; 
 
 string name;
 cout << "Type name:      ";
 cin >> name;
 
 int life;
 int damage;
 int mana;
 
 int klas;
 cout << "Choose your class: 1 - witcher, 2 - warior, 3 - shooter   ";
 cin >> klas;
 
switch (klas)
{ 
      case 1:
           life = 100;
           damage = 10;
           mana = 150;
           cout << "Your name is " << name << "\n";
           cout << "Your class is witcher  \n";
           cout << "Your life is   " << life << " now. You can upgrade it\n";
           cout << "Your damage is  " << damage << " now\n";
           cout << "And you have " << mana << " mana! It`s really more!\n";
      break;
      case 2:
           life = 160;
           damage = 14;
           mana = 0;
           cout << "Your name is " << name << "\n";
           cout << "Your class is warrior \n";
           cout << "Your life is   " << life << " now. You can upgrade it\n";
           cout << "Your damage is  " << damage << " now\n";
           cout << "And you have no mana, becose you are warrior, yeah. Discrimination.\n";
      break;
      case 3:
           life = 50;
           damage = 20;
           mana = 10;
           cout << "Your name is " << name << "\n";
           cout << "Your class is shooter \n";
           cout << "Your life is   " << life << " now. You can upgrade it \n";
           cout << "Your damage is  " << damage << " now\n";
           cout << "And you have " << mana << " mana! You have mana! It`s cool!\n";
}
int gnomtown;
int elftown;
int orktown;
 
int goo;
cout << "Where you want to go? 1 - to gnomes, 2 - to elftown, 3 - to orktown     ";
cin >> goo;
switch (goo)
{
       case 1:
            cout << "You are in Gnomes Town now! You can repair your armor!"<< endl;
       break;
       case 2:
            cout << "You are in Elfs Town now! You can buy weapon here!"<< endl;
            cout << "Type !shop for shopping!"<< endl;
                int shop;
                cin >> shop;
    if (shop=!shop);
     {
                    cout << "What are you want? Maybe, you want to buy Legendary Sword?" << endl;
                    int buy;
                    cout << "1 - to buy sword, 2 - for bow, 3 - for sniper rifle" << endl;
                    cin >> buy;
                                 switch (buy)
                                 {
                                 case 1:
                                       damage = 17;
                                       cout << "Your damage is 14 + 3 now"<< endl;
                                 break;                                 
                                       
                                 case 2:
                                       damage = 15;
                                       cout << "Your damage is 14 + 1 now"<< endl;
                                 break;
                                 case 3:
                                      if (klas = 2)
                                       {
                                               cout << "You can`t buy this item, becouse you are warrior. Dicramination!"<< endl;
                                               }
                                               else
                                               {
                                                   cout << "Your damage is 20 + 6 now! You are dangerous!"<< endl;
                                               }
                                       }
                    }
 
       break;
       case 3:
            life -= 44;
            cout << "Orks hate you and want to kill you. Run away!\n ";
            cout << "You was damaged. Your health for now  " << life << "\n";
            break;
}
system("pause");
return 0;
}
После if (shop=!shop) должен следовать else. Но как я не пытаюсь его поставить после switch у меня ничего не выходит. Помогите пожалуйста!
P.S. Если можно, объясните наследование, как его правильно сделать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16843 / 5264 / 323
Регистрация: 30.03.2009
Сообщений: 14,159
Записей в блоге: 26
02.08.2013, 13:47     Не могу справиться с if! #2
У тебя для ненаписанного else закрывающей скобки нет. На 95-й строке закрывающая скобка в паре к 75-й строке. После неё надо поставить ещё одну фигурную скобку в пару к 69-й строке. Если бы не ленился и аккуратно форматировал текст, то сразу бы сам всё увидел
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
02.08.2013, 13:58     Не могу справиться с if! #3
Цитата Сообщение от Darell_ldark Посмотреть сообщение
C++
1
if (shop=!shop)
по-моему данный условный оператор не несет никакой пользы, ибо условие всегда не выполняется
Nastik-kum
0 / 0 / 0
Регистрация: 20.03.2013
Сообщений: 16
02.08.2013, 13:58     Не могу справиться с if! #4
Цитата Сообщение от Darell_ldark Посмотреть сообщение
if (shop=!shop);
Объясните, пожалуйста, что должна делать данная строчка? Мне кажется, что она вообще ничего не делает, т.к. завершена ; и все равно что там внутри. Кроме того, я не поняла что значит shop=!shop? Вы пытаетесь переназначить переменную? Или это должно значить не равно?
А после switch у тебя и не получится поставить else.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.08.2013, 14:08     Не могу справиться с if! #5
Цитата Сообщение от aLarman Посмотреть сообщение
условие всегда не выполняется
А вот и дудки. )
Конструкция
C++
1
2
cin >> shop;
if(shop!=shop)
Считали shop. Если shop сначала присвоили shop значение не shop, потом проверили. И если введенный shop был не ноль, тогда присвоится ему же значение нуля и проверится условие. Соответственно если введен ноль, то условие выполнится. Иначе не выполнится.

Добавлено через 1 минуту
Цитата Сообщение от Nastik-kum Посмотреть сообщение
завершена ; и все равно что там внутри
Это так и есть.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16843 / 5264 / 323
Регистрация: 30.03.2009
Сообщений: 14,159
Записей в блоге: 26
02.08.2013, 14:14     Не могу справиться с if! #6
Цитата Сообщение от Nastik-kum Посмотреть сообщение
Мне кажется, что она вообще ничего не делает, т.к. завершена
Он же написал, что после этого должны быть else. Т.е. он хочет написать

C
if (shop=!shop);
else {
  ...
}
но не может и просит помощи
Darell_ldark
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 11
02.08.2013, 14:15  [ТС]     Не могу справиться с if! #7
Nastik-kum, по идее, это идет проверка значения переменной shop. Если она равна !shop, то делает то и то.

Добавлено через 24 секунды
Evg, да. Мне надо поправить скобки и тогда все заработает?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.08.2013, 14:31     Не могу справиться с if! #8
Цитата Сообщение от Darell_ldark Посмотреть сообщение
Если она равна !shop
C++
1
if(shop==!shop)
А вообще я в здравом уме не придумаю что-то такое значение shop, чтобы выполнилось условие.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16843 / 5264 / 323
Регистрация: 30.03.2009
Сообщений: 14,159
Записей в блоге: 26
02.08.2013, 14:42     Не могу справиться с if! #9
Цитата Сообщение от Darell_ldark Посмотреть сообщение
Nastik-kum, по идее, это идет проверка значения переменной shop. Если она равна !shop, то делает то и то
Как правильно писать такую проверку, написали в посте #8. При каких значениях, на твой взгляд, такая проверка сработает?

Цитата Сообщение от Darell_ldark Посмотреть сообщение
Evg, да. Мне надо поправить скобки и тогда все заработает?
Всё заработает, или не всё - я не знаю. Но конкретно ту ошибку, о который ты писал, скобка вылечит
zer0mail
2189 / 1872 / 187
Регистрация: 03.07.2012
Сообщений: 6,665
Записей в блоге: 1
02.08.2013, 14:43     Не могу справиться с if! #10
Цитата Сообщение от SatanaXIII Посмотреть сообщение
C++
1
if(shop==!shop)
А вообще я в здравом уме не придумаю что-то такое значение shop, чтобы выполнилось условие.
Там не так, а
C++
1
if(shop=!shop)
В скобках не сравнение, а присвоение. Результат такой как:
C++
1
2
shop=!shop;
if(shop)...
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.08.2013, 14:51     Не могу справиться с if! #11
Цитата Сообщение от zer0mail Посмотреть сообщение
Там не так
Я как раз об этом же.

Не по теме:

И вообще они что-то без нас обсуждают. Так что мы не в тему. Х)

Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.08.2013, 15:05     Не могу справиться с if! #12
Цитата Сообщение от SatanaXIII Посмотреть сообщение
C++
1
if(shop==!shop)
А вообще я в здравом уме не придумаю что-то такое значение shop, чтобы выполнилось условие.
Вообще-то было написано
C++
1
if(shop=!shop)
А это вполне корректная конструкция.
переменной shop присваивается значение !shop и проверяется, что за значение присвоилось
Если shop был равен 0, то его значение будет изменено на 1
и далее выполнится условие.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
02.08.2013, 15:12     Не могу справиться с if! #13
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Вообще-то было написано
Да. С подписью, что это проверка на то, что
Цитата Сообщение от Darell_ldark Посмотреть сообщение
Если она [shop] равна !shop
Вот я и говорю, что проверка на равность shop и не shop выглядела бы как
C++
1
if(shop==!shop)
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А это вполне корректная конструкция.
переменной shop присваивается значение !shop и проверяется, что за значение присвоилось
Если shop был равен 0, то его значение будет изменено на 1
и далее выполнится условие.
Так а я о чем?
zer0mail
2189 / 1872 / 187
Регистрация: 03.07.2012
Сообщений: 6,665
Записей в блоге: 1
02.08.2013, 15:13     Не могу справиться с if! #14
Зря мы наехали на "SatanaXIII, проблема в сообщении 7, а он привел аргумент "от противного".

Пока это писал, он сам разъяснил.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.08.2013, 15:18     Не могу справиться с if! #15
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Вот я и говорю, что проверка на равность shop и не shop выглядела бы как
Код C++
1
if(shop==!shop)
но это вообще бесполезная проверка. которая никогда не выполнится. Скорее всего имелось в виду всё же первое.
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
02.08.2013, 15:25     Не могу справиться с if! #16
Всё чётко в условии, кому не нравится - изучите разницу операторов "=" и "==". Если не прояснилось, погоняйте в отладчике.
SatanaXIII
02.08.2013, 15:32
  #17

Не по теме:

Darell_ldark
0 / 0 / 0
Регистрация: 30.06.2013
Сообщений: 11
02.08.2013, 15:35  [ТС]     Не могу справиться с if! #18
Эм... Ну я хотел, чтобы было так: если переменная shop равна !shop, то выполняются условия, если нет, то идут другие действия. Как я понял, это вообще неправильно.
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
02.08.2013, 15:36     Не могу справиться с if! #19
Ну если так, то да, неправильно xD
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2013, 15:37     Не могу справиться с if!
Еще ссылки по теме:

C++ Не могу справиться с двумерным массивом
C++ Не могу справиться с функцией с++ istringstream

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

Или воспользуйтесь поиском по форуму:
zer0mail
2189 / 1872 / 187
Регистрация: 03.07.2012
Сообщений: 6,665
Записей в блоге: 1
02.08.2013, 15:37     Не могу справиться с if! #20
Цитата Сообщение от Darell_ldark Посмотреть сообщение
После if (shop=!shop) должен следовать else. Но как я не пытаюсь его поставить после switch у меня ничего не выходит. Помогите пожалуйста!
P.S. Если можно, объясните наследование, как его правильно сделать.
Разве четко? Если "Да", то как одновременно поставить else после if и switch, учитывая, что сразу за if() стоит ';' ?

else можно либо поставить после нее, либо убрать ';' после if() (скорее всего, 2-й вариант).
Yandex
Объявления
02.08.2013, 15:37     Не могу справиться с if!
Ответ Создать тему
Опции темы

Текущее время: 00:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru