我有一个关于while循环的快速问题.
我想读取ASCII字符代码,如果它不是某些特定的ascii代码,我不想继续并要求用户再次输入它.
这有效
while (yn != 89)
{
printf("\nEnter");
flushall();
scanf("\n%c", &yn);
}
Run Code Online (Sandbox Code Playgroud)
事实并非如此
while (yn != 89 || yn != 121)
{
printf("\nEnter");
flushall();
scanf("\n%c", &yn);
}
Run Code Online (Sandbox Code Playgroud)
天哪,我想我需要睡个好觉.这相当......愚蠢.:)谢谢你们BTW.
表达yn != 89 || yn != 12总是正确的.任何值都不等于89或不等于12.所以,这个表达没有任何实际意义.循环将永远循环,因为重复条件始终为真.
根据您的描述,您需要的条件是yn != 89 && yn != 12.&&不是||.