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

这为一部分函数
int courage_stop(){
    char i;
    scanf("%c",&i);
    if(i!='q'||'Q') return 0;
    else exit(1);
}

应该怎么改,才能在不按Q或q时继续,按Q或q时退出

mrs_empress
浏览 1324回答 1
1回答

onemoo

判断部分应该写成这样: i != 'q' || i != 'Q'逻辑上这是“i不是q”或“i不是Q”,所以应该是两个不等于表达式作或关系。而在你的写法中,因为不等于运算符的优先级较高,所以先判断 i 是否等于'q',这个判断结果为true or false。再用这个结果和'Q'作或运算,'Q'的值不为0,所以在逻辑运算中被算作是true。所以整个表达式永远被判断为true,这造成 if 语句总是执行return 0
打开App,查看更多内容
随时随地看视频慕课网APP