所以我被困在这里,不知道为什么这行不通。

do{
    char cf;
    scanf(" %c",&cf);
}while(cf!='s' || cf!='S');


按S或s并不会结束循环。

最佳答案

首先,由于cf超出了检查条件的范围,因此甚至不应编译。

第二。由于cf始终为“ not s or not S”,因此将始终为真。

这是解决问题的方法:

  char cf;
  do{
    scanf(" %c",&cf);
  }while(cf!='s' && cf!='S');


注意:您也可以这样写条件,这与上面的逻辑等效:

 while(!(cf=='s'||cf=='S'))

关于c - 字符比较无法结束循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20576631/

10-11 22:38
查看更多