关于=与==
#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;
} != 表示不等于
==表示等于 因为这里的逻辑需要!=号才得到正常的结果 本帖最后由 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 ++ ;
那么,代码逻辑就变了,只有用户按下的是回车键,循环才会继续,否则,循环就会终止。显然,这样的代码逻辑没有任何意义。 楼主,问题解决了,请结帖!
页:
[1]