为什么要打印?(C语言)
为什么下面的代码运行while循环?我认为“期中=学期”是一项任务,不是一个条件?请解释一下。谢谢为什么要打印?(C语言),c,loops,printing,while-loop,C,Loops,Printing,While Loop,为什么下面的代码运行while循环?我认为“期中=学期”是一项任务,不是一个条件?请解释一下。谢谢 #include <stdio.h> main () { int mid = 4, term = 4; while ( mid = term) printf("%d\n", --term); } #包括 主要() { int mid=4,term=4; while(期中=学期) printf(“%d\n”,--术语); } 赋值的结果就是值。因此,表达式的
#include <stdio.h>
main ()
{
int mid = 4, term = 4;
while ( mid = term)
printf("%d\n", --term);
}
#包括
主要()
{
int mid=4,term=4;
while(期中=学期)
printf(“%d\n”,--术语);
}
赋值的结果就是值。因此,表达式的计算结果为4
或非零,因此在C中,TRUE
,因为表达式的计算结果为TRUE
基本上,你说的是mid=4
由于任何不为零的int在条件语句中返回true,while将循环。
mid=term
是一个计算为term
的表达式。因此,while循环将一直运行到term=0
赋值和测试都发生在“while
”循环中,因此在这种情况下,printf()
执行四次。赋值也是包含一个值的表达式:它们指定的值mid=0
是一个计算为0
(因此为假)的表达式。表达式mid=term
在赋值后实际计算为mid
的值。因此,正在评估的是,而(4)
。由于所有非零整数都被解释为true
(这是一种简化),while循环将在term!=0
您将术语
指定给mid
,然后测试mid
的真实性mid
无论何时为非零都是真实的。当term
(因此mid
)减小到等于0时,循环终止,这是错误的。您将term
的值赋给mid
,然后while
检查mid
的值,该值计算为true,直到达到0为止
这应该输出:
3
2
1
0
它不会永远循环,只有4次。当
循环时,分配将在的每次迭代中进行评估,由于术语在循环中递减,因此当术语==0