出于某种原因,这个非常简单的while循环保持无限循环。也许我一直盯着这个太长时间,或者犯了一些明显的,愚蠢的错误。有人可以帮我修复代码吗?我尝试输入“ste”,但它一直给我输出无效。
while (type1 != "nor" || type1 != "fir" || type1 != "wat" || type1 != "ele" || type1 != "gra" || type1 != "ice" || type1 != "fig"|| type1 != "poi" || type1 != "gro" || type1 != "fly" || type1 != "psy" || type1 != "bug" || type1 != "roc" || type1 != "gho" || type1 != "dra" || type1 != "dar" || type1 != "ste" || type1 != "fai" || type1 != "n/a")
{
cout << "Invalid type. Re-enter type." << endl;
cin >> type1;
}
答案 0 :(得分:1)
您的条件将始终为真,因为任何给定的type1值必须与您指定的所有值保存(最多)一个。
如果您使用&amp;&amp;而不是||你会得到你想要达到的目标
答案 1 :(得分:1)
这个循环永远不可能结束。此外观可能结束的唯一可能方式是type1
同时为nor
,fir
,wat
,....您可能希望用ands(||
)替换所有ors(&&
)。在这种情况下,您的循环会在type1
等于其中一个比较字符串(nor
,fir
,wat
...)时停止,当然这是可能。