C语言学习总结(六)——循环语句

一、while循环

1、while语句

while循环通用形式:
while(expression
statement

expression部分使用关系表达式,如果expression为真(非零),执行statement部分一次,然后再次判断expression。在expression为假(0)之前,循环的判断和执行一直进行。每次循环都被称为一次迭代。

statement部分可以是以分号结尾的简单语句,也可以是用花括号括起来的复合语句。

2、while循环终止

只有在对测试条件求值时,才决定终止还是继续循环。

tip:比较浮点数尽量只使用<和>。因为浮点数的舍入误差会导致逻辑上应该相等的两数却不相等。
使用fabs()函数(声明在math.h头文件中)可以方便地比较浮点数,该函数返回一个浮点值的绝对值(即,没有代数符号的值)。

3、无限循环

while(1)
{

}
一般而言,所有的非零值都是为真,只有0被视为假。

4、新的_Bool类型

如果把其他非零数值赋给_Boo类型的变量,该变量会被设置成1。

5、关系表达式

简单的关系表达式由关系运算符及其运算对象组成。如果运算关系为真,关系表达式的值为1;如果关系为假,关系表达式的值为0.

二、for循环

#include<stdio.h>
int main(void)
{
    
    
	const int NUMBER = 22;
	int count;

	for(count = 1; count <=NUMBER; count++)
		printf("Be my valentine!\n");
	return 0;
}

关键词for后面的圆括号中有3个表达式,分别用两个分号隔开。
第一个表达式是初始化,只会在for循环开始时执行一次。
第二个表达式是测试条件,在执行循环之前对表达式求值。如果表达式为假,循环结束。
第三个表达式执行更新,每次循环结束时求值。

for循环的灵活性

1、递减计数器
for(secs = 5; secs > 0;secs--)
2、让计数器递增
for(n = 2; n < 60; n = n + 13)
3、用字符替代数字计数
for(ch = 'a'; ch <= 'z';ch++)
4、可以省略一个或多个表达式(但不能省略分号),只要在循环中包含能结束循环的语句即可。
#include<stdio.h>
int main(void)
{
    
    
	int ans,n;
	ans = 2;
	for(n = 3;ans <= 25;)
		ans = ans * n;
		printf("n = %d;ans = %d.\n",n,ans);
		return = 0;
}

该程序输出结果如下:

n = 3; ans = 54.

省略的第二个表达式被视为真的话循环会一直运行下去:

for(; ; )
printf("I donot know what I want\n");
5、第一个表达式不一定给变量赋初值,也可以使用printf(),只执行一次。

三、do while循环

do
	statement
while(expression);

do while循环在expression为假或0之前重复执行循环体中的内容。do while语句是一种出口条件循环,即在执行完循环体后才根据测试条件决定是否再次执行循环,因此该循环至少必须执行一次
statement可以时一条简单语句或复合语句。
do while循环以分号结尾

猜你喜欢

转载自blog.csdn.net/Dscerpor_/article/details/113786547