Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C中IF语句的基本条件检查_C_Conditional_If Statement - Fatal编程技术网

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

C中IF语句的基本条件检查,c,conditional,if-statement,C,Conditional,If Statement,有人能解释一下这段代码到底是怎么回事吗? 如果我放入AND语句,消息将不会显示值是否小于0或大于10。。。我想我必须用10的逻辑来解决这个问题,对吗? 我只需要有人简要解释一下 #include<stdio.h> main(){ puts("enter number"); scanf("%d",num); if(num<0 || num >10) puts("yay"); } #包括 main(){ 看跌期权(“输入数字”); scanf(“%d

有人能解释一下这段代码到底是怎么回事吗? 如果我放入AND语句,消息将不会显示值是否小于0或大于10。。。我想我必须用10的逻辑来解决这个问题,对吗? 我只需要有人简要解释一下

#include<stdio.h>
main(){

  puts("enter number");
  scanf("%d",num);
  if(num<0 || num >10)
     puts("yay");
}
#包括
main(){
看跌期权(“输入数字”);
scanf(“%d”,num);
if(num10)
看跌期权(“耶”);
}
当和被放置时,IF语句如何不同:

#include<stdio.h>
main(){

  puts("enter number");
  scanf("%d",num);
  if(num<0 && num >10)
     puts("yay");
}
#包括
main(){
看跌期权(“输入数字”);
scanf(“%d”,num);
if(num10)
看跌期权(“耶”);
}

谢谢

这是基于布尔逻辑的:

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)
if(num10)

一个数字不可能同时是
<0
>10
。因此,您将计算
true&&false
(负数),
false&&false
(0到10之间的数字)或
false&&true
(大于10的数字)。在所有这些情况下,布尔逻辑表示答案为
false

这是基于布尔逻辑的:

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)
if(num10)
一个数字不可能同时是
<0
>10
。因此,您将计算
true&&false
(负数),
false&&false
(0到10之间的数字)或
false&&true
(大于10的数字)。在所有这些情况下,布尔逻辑说答案是
false

布尔逻辑

如果使用| |(或),则如果满足任何条件,则该语句为真。如果使用&&(AND),则只有在满足所有条件时,该语句才为真。因此,在第二个示例中,如果数字既小于0又大于10,则该语句为真。显然没有这样的数字。

布尔逻辑

如果使用| |(或),则如果满足任何条件,则该语句为真。如果使用&&(AND),则只有在满足所有条件时,该语句才为真。因此,在第二个示例中,如果数字既小于0又大于10,则该语句为真。显然没有这样的数字。

1)我相信您在scanf字符串中忘记了一些字符:

scanf("%d",&num);
2) 如果数字小于0或大于10,则第一个示例将显示“yay”

第二个示例永远不会说“yay”b/c编号必须同时小于0和大于10我相信您忘记了scanf字符串中的一些字符:

scanf("%d",&num);
2) 如果数字小于0或大于10,则第一个示例将显示“yay”


第二个示例永远不会说“yay”b/c编号必须同时小于0和大于10(a)您需要声明
num
,并且(b)您需要将指向
num
的指针传递到
scanf()
,而不是
num
本身。你可能还可以用一篇介绍计算机科学的文章。你能想出一个既小于零又大于十的数字吗?@James,是的,我知道,谢谢你指出,我只是在这里写了一个随机程序。。所以错过了那些@walky,没有,但我正在寻找下面提到的解释,感谢您的回复,(a)您需要声明
num
,以及(b)您需要将指向
num
的指针传递到
scanf()
,而不是
num
本身。你可能还可以用一篇介绍计算机科学的文章。你能想出一个既小于零又大于十的数字吗?@James,是的,我知道,谢谢你指出,我只是在这里写了一个随机程序。。所以错过了那些@walky,没有,但是我正在寻找下面提到的解释,谢谢你的回复,谢谢你的信息,是的,我只是在这里输入了一个随机程序。。。谢谢谢谢你的信息,是的,我只是在这里输入了一个随机程序。。。谢谢