这为一部分函数
int courage_stop(){
char i;
scanf("%c",&i);
if(i!='q'||'Q') return 0;
else exit(1);
}应该怎么改,才能在不按Q或q时继续,按Q或q时退出
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
判断部分应该写成这样:
i != 'q' || i != 'Q'
逻辑上这是“i不是q”或“i不是Q”,所以应该是两个不等于表达式作或关系。
而在你的写法中,因为不等于运算符的优先级较高,所以先判断 i 是否等于'q',这个判断结果为true or false。再用这个结果和'Q'作或运算,'Q'的值不为0,所以在逻辑运算中被算作是true。所以整个表达式永远被判断为true,这造成 if 语句总是执行return 0
- 1 回答
- 0 关注
- 1327 浏览
添加回答
举报
0/150
提交
取消