循环语句是用于重复执行某条语句(循环体)的语句,它包含三个部分,分别是循环变量初始化,循环执行条件与循环趋于结束语句(在例中说明,之后不再赘述)。C语言提供了3中循环语句,分别为while语句,do while语句和for语句。
一、goto型
在C语言中,goto
是一个跳转语句,允许程序在特定条件下无条件地跳转到程序中的标签位置。但是,由于滥用 goto
可能导致代码难以理解和维护,应该谨慎使用它。建议最好是不用。
goto
语句的基本用法如下:
goto label:
其中 label
是程序中某个标识符,通常是一个带有冒号的标签。
例如,我们可以使用 goto
在特定条件下跳转到标签位置:
int i, sum;
sum = 0;
i = 1;循环变量初始化
loop:
if(i <= 100)//循环执行条件
{
sum += i;
++i; //循环趋于结束语句
goto loop;
}
printf("%d\n", sum);
上述代码就是通过goto语句的使用,来实现一个简单的循环。
当然在使用goto语句是还要注意一下几点:
1 . goto 语句只能在当前函数内部进行跳转。它不能用于跳转到其他函数或代码块
2 . 标签必须在 goto 语句之后定义,并且标签的作用范围仅限于当前函数。
3 . goto可能会导致代码难以理解、跟踪和维护,能不用最好不用。(工作中被禁止使用)
2、while与do whlie型
while型又称为当型语句,意思就是当.......时
while(判断是否循环的条件)
{
循环体语句……
}
注意:while语句的特点是先判断循环条件,后执行循环体语句。
使用演示:
int i = 1, sum = 0;
while(i <= 100)
{
sum += i;
++i;
}
printf("%d\n", sum);
do while型
do
{
循环体;//循环体需要有终止条件,但是不论符不符合判断条件都会执行一次
}while(循环条件);
需要注意的是:do-while语句的特点是先执行循环体,后判断循环条件。因此,do-while循环至少要执行一次循环体。
在使用while型语句与do while型语句时要特别注意:while语句后面不能加‘ ;’,但是do while语句后面不能忘记写‘ ;’
使用演示:
int i = 1, sum = 0;
do
{
sum += i;
++i;
}while(i <= 100);
printf("%d\n", sum);
3、for型
for型循环的基本结构:
for (初始化; 循环执行条件;循环趋于结束 )
{
// 循环体
}
要注意的是:for语句括号中三个部分均是语句,用分号';'隔开,而且三个语句均可以省略,可以省略部分或者全部。
使用演示:
int i, sum = 0;
for(i = 1;i <= 100; ++i)
{
sum += i;
}
printf("%d\n", sum);
试题演示:求100-1000以内的水仙花数
int main(void)
{
int i;
for(i = 100;i < 1000;++i)
{
int a, b, c;
c = i % 10;
b = i / 10 % 10;
a = i / 100;
if(a * a * a + b * b * b + c * c * c == i)
{
printf("%d\n", i);
}
}
return 0;
}
本次学习的3循环条件,它们的循环效率相同,只是面对问题的不同解决方式。遇到问题可以选择最适合自己的方法解决。
4、break语句
在学习break语句之前,我们要了解内层循环与外层循环。
内层循环是一个循环中还有一个循环,即这个内层循环一般在外层循环的执行语句中。
外层循环是包含了内层循环的循环。
跳出内层循环不是跳出了外层循环,而是停止了内层循环的执行,即执行内层循环下面的包括在外层循环的执行的语句,外层循环仍根据测试条件进行循环,
使用演示:
{
int i, j;
for(i = 0;i < 3;++i)
{
for(j = 0;j < 10;++j)
{
if(j >= 4)
{
break;
}
printf("%d\n", j);
}
if(j < 10)
{
break;
}
}
此段代码中,第一个break语句是跳出了内层循环(if循环),第二个break语句是跳出外层循环(for循环)