首页 > 解决方案 > 使用 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,而我正在做“练习”。我尝试过的一切都会导致错误。

标签: cfor-loopif-statement

解决方案


逻辑 OR 运算符需要两边都有条件,因此 if 语句中的条件必须如下:

if (ch == '~' || ch == '`') {
    break;
}

否则'`'将被视为条件本身,这将始终为真,因为字符的值'`'不等于0


推荐阅读