Cyzyt 发表于 2019-8-13 15:26:06

关于=与==

#include <stdio.h>

int main()
{
        int ch,count=0;
       
        printf("请输入英文字符:");

        while ((ch=getchar())!='\n'){             //为什么这里后面的不是==?
                if (ch>='A'&&ch<='Z'){
                                count=count+1;
                }
               
        }
       
        printf("大写字母有%d个",count);
       
        return 0;
}

wp231957 发表于 2019-8-13 15:27:15

!= 表示不等于
==表示等于

迷雾少年 发表于 2019-8-13 15:29:05

因为这里的逻辑需要!=号才得到正常的结果

jackz007 发表于 2019-8-13 15:43:14

本帖最后由 jackz007 于 2019-8-13 15:47 编辑

      count = 0                                                             ;
      while ((ch = getchar()) != '\n') if (ch >= 'A' && ch <= 'Z') count ++ ;
      这个语句的意图是循环读取用户从键盘输入的每一个字符,如果用户按下的不是回车键,那就继续循环,并且,对这个字符进行大写字母判别和计数,否则(用户按下的是回车键),就会结束循环,这时,count 中就会是键入的所有字符中,大写字母的个数。
         反之,如果按楼主所说,把上述代码修改为:
      count = 0                                                             ;
      while ((ch = getchar()) == '\n') if (ch >= 'A' && ch <= 'Z') count ++ ;
         那么,代码逻辑就变了,只有用户按下的是回车键,循环才会继续,否则,循环就会终止。显然,这样的代码逻辑没有任何意义。

cplus 发表于 2019-8-13 16:52:25

楼主,问题解决了,请结帖!
页: [1]
查看完整版本: 关于=与==