我已经完成了一项需要以下内容的程序:
type == a
,会提示输入并执行某个公式[if] type == b
,会提示输入并执行另一个公式[else if] input == y
,退出input == n
,返回1 目前我已经陷入2.3了。 它会提示错误并转到3而不是返回2以提示用户输入。
问题在哪里?别的?答案 0 :(得分:2)
如果没有看到任何实际代码,就无法说明您的尝试有什么问题。但是这样的事情应该有效
// ...
string atype;
while(atype != "a" && atype != "b") {
cin >> atype;
if(atype == "a") {
// 2.1
} else if(atype == "b") {
// 2.2
} else {
cout << "wrong input" << endl;
}
}
// ...
答案 1 :(得分:2)
如果类型错误,您必须使用循环来继续询问帐户类型:
do
{
//1
do
{
//2
if (type =="a")
//2.1
else if(type=="b")
//2.2
else
//2.3
}
while (type != "a" and type != "b");
//3
if(input == "y")
return;
}
while (input == "n");
答案 2 :(得分:0)
如果你在每个案例发生时你都应该做一些工作,并且你想避免使用“goto”(你可能应该这样做),我建议将1),2)和3)分开。三个独立的职能。
如果您应该做的事情非常简单,我建议使用类似于sepp2k发布的解决方案。但是,我会将while循环调整为do-while循环(你不应该在循环开始时测试atype,因为从技术上讲它没有初始化)。