Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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 while循环与算术算子_C_While Loop_Arithmetic Expressions - Fatal编程技术网

C while循环与算术算子

C while循环与算术算子,c,while-loop,arithmetic-expressions,C,While Loop,Arithmetic Expressions,不打印任何内容 int i = 5; while(i>5) printf("%d",i); inti=5; C中的(5整数用作布尔值:0为false,其他所有内容均为true。 正如@JonathanLeffler所指出的(见下面的评论),在C99和C11中有一个标准的布尔数据类型,但它也扩展为整数常量(0和1) 当你编写一个像5

不打印任何内容

int i = 5; 

while(i>5)

printf("%d",i);                
inti=5;

C中的(5整数用作布尔值:
0
false
,其他所有内容均为
true
。 正如@JonathanLeffler所指出的(见下面的评论),在C99和C11中有一个标准的布尔数据类型,但它也扩展为整数常量(
0
1

当你编写一个像
5
这样的表达式时,它被当作
(5
,其中
5
是一个布尔表达式,返回
0
。因此你得到了
(0)<10
,这是真的,这就是执行循环体的原因。 为了使循环条件正确,应使用以下方法:

int i = 5;

while ( 5<i<10 )
{
printf("%d",i);                      
i++;
}
while(5
在C中,整数用作布尔值:
0
false
,其他所有内容均为
true
。 正如@JonathanLeffler所指出的(见下面的评论),在C99和C11中有一个标准的布尔数据类型,但它也扩展为整数常量(
0
1

当你编写一个像
5
这样的表达式时,它被当作
(5
,其中
5
是一个布尔表达式,返回
0
。因此你得到了
(0)<10
,这是真的,这就是执行循环体的原因。 为了使循环条件正确,应使用以下方法:

int i = 5;

while ( 5<i<10 )
{
printf("%d",i);                      
i++;
}
while(5
5
在C语言中不应该有效。我同意,它应该是
i>5&&i<10
@John。我现在很好奇编译器如何解析这样的条件。请注意,Python确实支持
5
来表示您想要的意思,但绝大多数编程语言都将其解释为
(5
当比较的结果是
0
1
时,这会产生一个无限长的循环,因为
1<10
0<10
都是真的,第一项的计算结果只能是
0
1
5
有效。这是C的一大优点,规则表达式解析是简单且一致的。
5
在C中不应该有效。我同意,它应该是
i>5&&i<10
@John。我现在很好奇编译器会如何解析这样的条件。请注意,Python确实支持
5
来表达您的意思,但绝大多数编程语言都支持
5
uages将其解释为
(5
当比较的结果是
0
1
时,这会产生一个无限长的循环,因为
1<10
0<10
都是真的,第一项的计算结果只能是
0
1
5
有效。这是C的一大优点,规则表达式解析是简单而一致的。+1你比我快了3秒哈哈,完美的答案!在C99和C11中,有
\u Bool
作为标准内置类型,而
Bool
定义为
\u Bool
的同义词(和
true
定义为
1
false
定义为
0
,以及
定义为
1
)@JonathanLeffler,谢谢!我现在编辑我的答案。+1你比我快了3秒哈哈,完美的答案!在C99和C11中,有
\u Bool
作为标准内置类型,而
Bool
定义为
\u Bool
的同义词(和
true
定义为
1
false
定义为
0
,和
定义为
1
。@JonathanLeffler,谢谢!我现在编辑我的答案。