我在使用C ++中的if语句时遇到问题,这个语句是在do-while循环中。
gotoxy(27,22);cout<<"Do you want to continue [Y]?";
sub=getche();
if(sub!='y' || sub!='Y')
{
gotoxy(27,24);cout<<"INVALID ANSWER!!";
gotoxy(27,26);cout<<"Closing Program....";
delay(3000);
exit(1);
}else
{
sub=ans;
}
}while(tolower(ans)=='y');
每当我在变量sub上输入y时if语句上的代码仍然在执行..请有人告诉我哪里出错...谢谢!
答案 0 :(得分:2)
(sub!='y' || sub!='Y')
的布尔表达式将始终评估为true
这一行:
if(sub!='y' || sub!='Y')
需要这样:
if ( (sub != 'y') && (sub != 'Y') )
答案 1 :(得分:0)
无论您输入什么内容,您的代码if(sub!='y' || sub!='Y')
都将成立,因为sub!='y'
或sub!='Y'
将评估为true。因此,请使用&&
代替||
。