我正在设计一个简单的RPG,只是为了让我开始使用C ++编码,但是我的其他声明不起作用,而且我觉得我的代码比它应该更笨重。你能不能给我一些关于如何改进我的代码以及如何修复else语句的技巧。我知道“系统(”cls“)”对所有东西都是仇恨,但我把它放在那里因为它使它看起来比其他方法更清洁。
顺便说一句,我仍然是C ++的新手
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;
int save = 0;
int menuinput;
int raceinput;
string race;
int cont1;
int main(void)
{
int save = 0;
int menuinput;
int raceinput;
string race;
int cont1;
cout << "(Insert Generic RPG Name Here) \n";
if (save == 1){
cout << "Main Menu\n";
cout << "[1.] Continue\n";
cout << "[2.] New Game\n";
cout << "[3.] Options\n";
cin >> menuinput;
}
if (save == 0){
cout << "Main Menu\n";
cout << "[1.] New Game\n";
cout << "[2.] Options\n";
cin >> menuinput;
system("cls");
}
if (menuinput == 1)
{
cout << "Please select your race\n";
cout << "[1.] Human\n";
cout << "[2.] Elf\n";
cout << "[3.] Dwarf\n";
cout << "[4.] Orc\n";
cin >> raceinput;
if (raceinput == 1){
race = "Human";
cont1 = 1;
}
if (raceinput == 2){
race = "Elf";
cont1 = 1;
}
if (raceinput == 3){
race = "Dwarf";
cont1 = 1;
}
if (raceinput == 4){
race = "Orc";
cont1 = 1;
}
else {
system("cls");
cout << "Invalid Input, please try again.";
Sleep(1000);
main();
}
if (cont1 = 1){
system("cls");
cout << race;
cin >> race;
}
else
{
system("cls");
cout << "Invalid Input, please try again.";
Sleep(10000);
main();
}
}
}
修改 重申一下,当我尝试使用第一个else语句(主菜单存在的地方)时,else语句不会激活,并立即结束程序。 else语句消息未显示。在第二个else语句中,else语句消息显示,但Sleep函数不起作用,它显示大约半毫秒然后消失。
答案 0 :(得分:1)
这一行:if (cont1 = 1){
您有=
,==
。
所以,你的其他事情永远不会发生,因为你没有检查如果 cont
等于1
,你使等于。< / p>