我有一个问题,我的程序只是无限循环。 在控制台“Ne”或“Ja”中写作后
//用英语翻译Ne是No,Ja是Yes。
//在写Ne之后,我想要退出程序。如果我写Ja,我会再次回到计划的开始。
//我知道我的代码是废话,但我在这里寻求帮助。
无论如何都有代码:
#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
{
while (true)
{
system("cls");
cout << "Noteikt naturalo skaitlu summu intervala no A [1] lidz B [N].\n\n";
Sleep(850);
cout << "Ludzu ievadiet naturalo skaitli: \n\n";
int Naturalais, Summa = 0;
cout << "--> "; cin >> Naturalais; cout << "\n";
for (int i = 1; i <= Naturalais; ++i)
{
Summa += i;
}
Sleep(250);
cout << "Summa = " << Summa; cout << "\n\n";
char Atbilde;
cout << "Atkartot Ievadi? (Ja = Ievadit naturalo skaitli velrezi / Ne = Ne uz Aizvert Programmu.\n\n";
cout << "--> "; cin >> Atbilde; cout << "\n";
if (Atbilde == 'Ne' || Atbilde == 'ne')
return 0;
if(Atbilde == 'Ja' || Atbilde == 'JA')
break;
}
}
}
答案 0 :(得分:1)
首先关闭:Atbilde == 'Ne'
Atbilde是char
。 'Ne'
是2个字符。我很惊讶这个编译。但我怀疑它是否会匹配。
然后:无论你的答案是什么,你总是退出循环 - 通过return
或break
。显然你只想在两个条件之一中退出循环。
答案 1 :(得分:1)
添加头文件cstring而不是string
将Atbilde声明为字符串 并申请
if (Atbilde.compare(0,2,"Ne") == 0 || Atbilde.compare(0,2,"ne") == 0)
continue;
if(Atbilde.compare(0,2,"Ja") == 0 || Atbilde.compare(0,2,"JA") == 0)
break;