为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的exit退出不了程序

为什么我的exit退出不了程序

C
mrs_empress 2016-11-13 23:26:58
这为一部分函数 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

查看完整回答
反对 回复 2016-11-13
  • 1 回答
  • 0 关注
  • 1327 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信