while循环到0为什么会结束

作者:介叔玑 | 发布日期:2024-09-12 16:33:23


本文目录一览⑴为什么这个while循环只循环了一次就退出来了?因为你这个代码里面有:
if(n--)
break;
第一次执行到这里的时候,由于n=10,那么if语句就会判定为真,会进入到这个if语句内部执行,就会执行break;语句,自然就会退出循环了。

⑵while0是什么意思?在C语言中,while0的作用是相当于do-while循环中的循环体,也就是说,使用while0作为循环语句的条件,循环体只会执行一次。 这种使用方法常见于某些宏定义中,宏定义本身就是一个文本替换,如果替换后代码不需要循环,却想要使用while语句的语法,也可以使用while0。

如果你在程序中看到while(0)出现在条件语句,在实际运行时它永远不会循环,这是因为0在C语言中表示false,因此while(0)的条件永远为false,循环体语句只会执行一次。 其实这种写法还有一个好处,可以在宏定义中使用复合语句,更好的控宏替换后的代码。
值得注意的是,在某些情况下,while(0)的使用可能会带来副作用,例如:
if(condition)

break;
/*somecodehere*/
这里使用了while(0)来控宏定义中多条语句的作用范围,当满足某个条件时,可以通过break跳出循环。 但是,如果在while循环中使用了continue或者goto语句,会跳过while(0)语句,导致代码的行为与预期不一致。 因此在使用while(0)时,一定要注意控好语句的作用范围和流程控语句的使用方式。

⑶、while(i--)判断条件为0时结束循环,结果为多少?

程序输出的结果是-1。

while判断条件为0时结束循环,当i一直减到0时,while(i--)判断条件为0,循环结束。 但是在判断过程中i又自减一次变成-1,所以输出i为-1。

while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。 简单来讲就是说while循环是先判断后循环,判断如果满足条件进入循环,本次循环后再次判断。

扩展资料: 

Printf()函数的使用方法如下所示

printf("格式控字符串",输出变量列表)


格式字符串的和意义如下所示。

%c:输出单个字符,参数为该字符的ASCII码。


%d:以十进形式输出带符号整数(正数不输出符号)。

%e或%E:以指数形式输出单、双精度实数,默认保留6位小数。

%f:以小数形式输出单或双精度实数,默认保留6位小数。

%g或%G以%f或%e中较短的输出宽度输出单、双精度实数。 如果指数小于-4或大于等于默认精度,则使用%e或%E格式输出。 否则用%f格式输出,略末尾多余的0。


%i:以十进形式输出带符号整数,同%d。


%o:以八进形式输出无符号整数(不输出前缀0)

%s:输出字符串,参数为char指,显示字符串所有的字符

%u:以十进形式输出无符号整数。

%x或%X:以十六进形式输出无符号整数,%x表示输出小写,%X表示输出大写。