字符比较无法结束循环

时间:2013-12-13 21:50:46

标签: c

所以我被困在这里,不知道为什么这不起作用。

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

按S或s时,它不会结束循环。

2 个答案:

答案 0 :(得分:1)

首先,这甚至不应该编译,因为cf超出了检查条件的范围。

二。这将永远是真的,因为cf永远是“不是或不是S”。

这就是你如何解决它:

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

注意:你也可以写这样的条件,这是上面的逻辑等价物:

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

答案 1 :(得分:0)

你的状况是错误的。 它应该是:

  

while(cf!='s'&& cf!='S');