if()括号里不是为0才执行吗?

if()括号里不是为0才执行吗? if(exit),也即是if(exit==1)为什么也行?感谢。

#include <stdio.h>
int main ()
{   int exit =0;
    int i;
    int one,two,five;
    scanf("%d", &i);
    for(one=1;one<i*10;one++){
        for(two=1;two<i*10/2;two++){
            for(five=1;five<i*10/5;five++){
                if(one+two*2+five*5==i*10){
                    printf("可以用%d个1角和%d个2角和%d个5角凑齐%d元",one,two,five,i);
                    exit=1;
                    break;
                }
            }if(exit ) break;
        }if(exit) break;
    }
    
    
    
    
    
    return 0;
}


 

C语言里,0 表示逻辑假,即条件不满足。1 或 非0 表示逻辑真,即条件满足,-1 或是一切 非0 数字都为真。
if(0) 即 if(假) = if(条件不满足),后面语句不被执行。
if(1) 即 if(真) = if(条件满足) ,后面的语句被执行。

if()括号里不是为0才执行吗

为0是false,不执行,非0是true

为0不执行