C语言,while(i)是什么意思,while(!i)是什么意思

Python020

C语言,while(i)是什么意思,while(!i)是什么意思,第1张

whie是C语言中的关键字,代表循环。

while(i)和while(!i)的意思要看i这个变量(表达式)的值是真还是假(0和NULL就是假)。

while(1)和while(99)和while(-76)甚至while(3-100)这类只要括号中的值(或表达式的值)非0,意思一样,代表可以循环并执行循环体,如果是while(0),则代表不执行循环并跳过循环体。while(!9)这个表示对9这个表达式取反,9是真的,那么!9就是假的。

如下面这个例子,会循环执行10次循环体中的printf("i

=

%d",

i),其中i的值会从10变成9、变成8直到0,当i的值变成0时停止循环,并跳过循环体,执行循环体下一个命令,也就是printf("end"):

int i = 10

while(i)

{

i--

printf("i = %d", i)

}

printf("end")

输出3040

具体分析:i在循环中取值为0,1,2,3. 取模i%2, 当i为0,2时值为0i为1,3时置1。因此a[1],a[3]为0;a[0], a[2]再进入switch判断。a[0]原来为2,进入a[0]++,变成3;a[2]原来为5,进入a[2]--,变成4。综合最后结果a[0]=3,a[1]=0,a[2]=4,a[3]=0,所以输出3040

#include<stdio.h>main(){ int a[]={2,3,5,4},ifor(i=0i<4i++) switch(i%2)//i分别为0,1,2,3 { case 0:switch(a[i]%2)//i为0,2进入这,a[0]=2,a[2]=5 { case 0:a[i]++break//a[0]=2进入这,执行a[0]++后变成a[0]=3 case 1:a[i]--//a[2]=5进入这,执行a[2]--后变成a[2]=4 }breakcase 1:a[i]=0//i为1,3,即a[1],a[3]变成0 } for(i=0i<4i++)printf("%d",a[i])printf("\n")}