C语言中如何实现输入'a'或'A'均可触发while循环跳出
代码修改方案
你需要调整循环的判断逻辑,同时匹配小写a和大写A的退出条件,正确写法如下:
while((product = getchar()) != 'a' && product != 'A')
注意事项
- 你之前的逻辑或语句不生效,是因为逻辑关系写反了:循环继续的条件是「输入既不是小写a,也不是大写A」,所以必须用逻辑与
&&,不能用逻辑或||。如果用||的话,任意输入都会满足其中一个不等于的条件,循环永远不会跳出。 - 如果需要简化代码,也可以借助字符处理函数统一大小写后判断,需要先引入头文件
#include <ctype.h>,修改后代码如下:while(tolower(product = getchar()) != 'a') - 要注意
getchar()会读取输入缓冲区的所有字符,包括换行符、空格等空白字符,如果需要过滤这类无效字符,可以额外增加判断逻辑跳过空白字符的校验。
内容的提问来源于stack exchange,提问作者deafninja
相关产品推荐
相关产品推荐

