int main()
{
int cstats, choice;
int rhp, hp, i, init, atk, def, matk, mdef, dmg, mdmg, agi, magi;
cout << "Please choose your specialty: ";
cout << "[1] Offense [2] Magic [3] Defense [4] Speed";
switch(cstats)
case 1:
atk = 15;
def = 5;
agi = 5;
break;
}
Это моя линия в начале. Как вы видите на коде. Я хочу иметь разные целые числа, используя оператор switch, но когда я всегда ставлю break; и перейти к следующему случаю, я всегда сталкиваюсь с проблемой. Можно ли сделать выбор целых чисел с помощью переключателя? Или я делаю это неправильно? Я делаю текстовую игру для моего тематического исследования, которое пройдет в пятницу.
Заранее спасибо. Ура!
Ваш синтаксис немного отклонен — вам нужно заключить switch
блок в фигурных скобках:
switch(cstats)
{
case 1:
atk = 15;
def = 5;
agi = 5;
break;
}
Помимо отсутствующих фигурных скобок в операторе switch. cstats
является неопределенным, и чтение его перед определением каким-либо образом является неопределенным поведением.
Читайте о том, как получить целое число из командной строки здесь: http://www.cplusplus.com/forum/articles/6046/
Кроме того, вы должны всегда определять свои переменные, предпочтительно при инициализации, это намного безопаснее и намного легче отлаживать, когда у вас есть тысячи строк кода и то, что происходит, не имеет абсолютно никакого смысла, как это часто бывает в случае с неопределенное поведение.
int main()
{
int cstats, choice;
int rhp, hp, i, init, atk, def, matk, mdef, dmg, mdmg, agi, magi;
cout << "Please choose your specialty: ";
cout << "[1] Offense [2] Magic [3] Defense [4] Speed";
cin >> cstats;
switch(cstats)
{
case 1:
atk = 15;
def = 5;
agi = 5;
break;
case 2:
//other code
break;
....
default:
//Here you can prompt to select 1,2,3 or 4
}
}