代码之家  ›  专栏  ›  技术社区  ›  NLed

C语言中IF语句的基本条件检查

  •  1
  • NLed  · 技术社区  · 14 年前

    有人能解释一下这段代码到底是怎么回事吗? 我只需要有人简单解释一下。

    #include<stdio.h>
    main(){
    
      puts("enter number");
      scanf("%d",num);
      if(num<0 || num >10)
         puts("yay");
    }
    

    #include<stdio.h>
    main(){
    
      puts("enter number");
      scanf("%d",num);
      if(num<0 && num >10)
         puts("yay");
    }
    

    谢谢!!

    3 回复  |  直到 14 年前
        1
  •  2
  •   R Samuel Klatchko    14 年前

    这基于布尔逻辑:

    true || true -> true
    true || false -> true
    false || true -> true
    false || false -> false
    
    true && true -> true
    true && false -> false
    false && true -> false
    false && false -> false
    

    总之,在你的测试中:

    if(num<0 && num >10)
    

    一个数字不可能两者都是 < 0 同时也是 > 10 . 因此,你要么 true && false (对于负数), false && false (适用于0到10之间的数字)或 false && true false .

        2
  •  2
  •   Roadmaster    14 年前

    如果使用| |(OR),则如果满足任何条件,则该语句为true。如果您使用&&(并且),只有当所有条件都满足时,该语句才是真的。所以在你的第二个例子中,如果这个数字既小于0又大于10,那么这个语句就是真的。显然没有这样的数字。

        3
  •  2
  •   zed_0xff    14 年前

    scanf("%d",&num);
    

    2) 如果数字小于0,第一个例子会说“yay” 大于10

    同时