目录
1.while循环语句
2.do...while循环语句
3.for循环语句
4.循环的嵌套、比较、改变循环状态
5.goto语句
一、while循环
语法结构
while(条件表达式)
{
语句体; //大括号之即循环体,如果while只要负责一条语句,可以不写{},建议类比if语句理解。
}
只要while的条件表达式为真(即给定的条件成立),就执行循环体语句。
特点
while循环的特点是:先判断条件表达式,后执行循环体语句。
条件表达式的执行次数总是比循环体的执行次数多一次。
!!!循环体中一定要有使循环趋于结束的语句!!!
二、do while循环
语法结构
do
{
语句体;
}while(条件表达式); //注意这里有个分号
特点
do while循环的特点是:先无条件执行循环语句,再进行判断循环条件是否成立。
条件表达式的执行次数和循环体执行次数相同。
!!!循环体中一定要有使循环趋于结束的语句!!!
三、for循环
语法结构
for(初始化语句;条件表达式;迭代语句) //控制循环次数
{
语句体; //执行循环体
}
初始化语句作用:设置初始条件,只执行一次。可以为零个、一个或者多个变量设置初值。
条件表达式语句作用:用来判断是否继续循环。每次在循环体执行前都要先执行此表达式,来决 定是否继续执行循环。
迭代语句作用:作为循环的调整,比如使循环变量增值或减值,它是在循环体结束之后进行。
特点
在执行完循环体之后,循环变量“超过”循环终值,循环结束。for与以下while循环可以无条件等价。
初始化语句;
while(条件表达式)
{
函数体;
迭代语句;
}
但是很显然for循环更加简单,便捷!
for循环的初始化语句,可以省略,但是为了循环能够正常执行,应该在for循环之前给循环变量赋初值。
for循环的条件表达式,也可以省略,即不设置和检查循环的条件,此时循环会无终值地进行下去。
for循环的迭代语句,同样可以省略,可以在函数体中进行循环变量的增减,如果不设置则可能会无限的循环下去。
三个表达式甚至可以同时省略,此时这两个函数是相同的。
for( ; ; )
printf("hellow\n");
while(1)
printf("hellow\n");
四、循环的嵌套、比较、改变循环状态
循环的嵌套
一个循环体中包含另外一个完整的循环结构,则称为循环的嵌套。
上面的3种循环都是可以互相嵌套。
循环的比较
1、3种循环都可以用来处理同一问题,一般情况下它们可以互相代替。
2、在 while 循环和do…while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如计+,或计计1等)。
for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现.
3、用while和do…while循环时,循环变量初始化的操作应在while 和 do…while 语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。
4、 while 循环、do…while 循环和 for 循环都可以用break语句跳出循环,用continue语句结束本次循环。
改变循环状态
用break提前终止循环
break语句可以使流程跳出switch结构,继续执行switch结构下面的语句。实际上break语句还可以用来从循环体内跳出循环体,即提前结束循环,执行循环下面的语句。
注意:break语句只能用于循环语句和switch语句之中,不能够单独使用。
用continue语句提前结束本次循环
有些时候我们只是想要提前结束本次循环,接着进行下一次循环(比如此时循环变量数值为1,我们不想要为1的这次循环,使用continue就可以结束本次循环,然后进行循环变量为2的循环),而不终止整个循环。
五、goto语句——无条件转移语句
语法结构
for (int j = 0; j < 3; j++)
{
for (int k = 0; k < 3; k++)
{
goto a_tai;//无条件跳转到 a_tai,不管你嵌套多少层循环
printf("hello world!\n");
}
}
a_tai:printf("我是阿太\n");
特点
goto语句的语义是改变程序的执行流向,无条件地转向并执行语句标号所标识的语句。这种语句通常与条件语句配合使用,可用于实现条件转移、构成循环,或跳出循环体等功能。
但是,在结构化程序设计中,一般不提倡使用goto语句,因为它可能导致程序流程变得混乱,增加理解和调试程序的难度。使用goto语句时应注意一些原则,比如避免从一段复杂的执行状态中的位置跳转到另一个位置,如从多重嵌套的循环判断中跳出;避免在一个函数内部从一个位置无目的地跳转到另一个位置;以及避免向两个方向跳转,这些做法最容易导致代码难以维护。
即使goto语句在某些情况下仍然有其用途,但在实践中应谨慎使用,以保持良好的编程习惯和代码的可维护性。
谢谢!希望我们KT进步~