c - 使用 OR 运算符时 for() 循环中断 (C)
问题描述
作为一个初学者,当我注意到 OR (in C ||) 打破了 for 循环时,我一直在打字。这是代码:
#include <stdio.h>
int main() {
char ch;
printf("Typing program...\n");
printf("Type away:");
for(;;) {
ch = getchar();
if(ch == '~' || '`') {
break;
}
}
return(0);
}
编译后的代码似乎没有返回任何错误,但是当我粘贴 OR 运算符的右侧时,for 循环会中断。什么可能导致这种情况?代码来自 C for Dummies,而我正在做“练习”。我尝试过的一切都会导致错误。
解决方案
逻辑 OR 运算符需要两边都有条件,因此 if 语句中的条件必须如下:
if (ch == '~' || ch == '`') {
break;
}
否则'`'
将被视为条件本身,这将始终为真,因为字符的值'`'
不等于0
。
推荐阅读
- node.js - 无法访问nodejs中的文件
- lua - 如何在 Roblox Studio 中识别杀手
- node.js - 离子服务无法获取/找不到模块'@ionic-native/splash-screen/ngx'
- haskell - 如何在 Haskell 中建模这种递归结构?
- python - 使用 beautifulsoup 从 HTML 中提取特定标签后的第 n 个标签
- ios - 将 mediaURL 转换为 PHAsset
- python - 删除 xtick 间隔 matplotlib
- android - 通过不在 Kotlin 中创建 ContextWrapper 实例调用“getSharedPreferences”方法的原因是什么?
- text-to-speech - 自定义语音:“规范化文本为空”
- vb.net - 如何使用连接表创建 RDLC 报告?