在本教程中,您将通过简单的示例掌握 C 语言中所有关于循环控制语句的知识,如 break、continue 和 goto。C 编程语言支持三种独特的循环方式:for 循环、while 循环和 do-while 循环,您已在之前的 C 语言循环教程中学习过。
在 C 语言的 32 个关键字中,break 是与循环一起最常用的关键字。一个 break 语句由关键字 break 后跟一个分号构成。break 语句用于立即中断循环执行序列。其原型如下:
break;
break 语句主要与循环和 switch case 中的 if 语句一起使用。首先,我们可以了解 break 语句在循环中是如何工作的,以中断循环控制。

为了更清楚地说明,请看下面的代码片段,并观察 for 循环控制在遇到 break 语句时是如何终止的。
#include<stdio.h>
void main()
{
int i;
for(i=1;i<=10;++i)
{
if(i==5)
{
break;
}
printf("%d\n",(i*i));
}
printf("Loop breaks and comes out of the loop ");
}
输出
1 4 9 16 Loop breaks and comes out of the loop
这里的 for 循环将继续打印数字 1、2、3 和 4 的平方。当它发现 i=5 时,循环中断并跳出循环,打印紧接在循环外的语句。
#include<stdio.h>
void main()
{
int i;
i=1;
while (i<=10)
{
{
if(i==5)
{
break;
printf("%d\n",(i*i));
i=i+1;
}
printf("Loop breaks and comes out of the loop ");
}
输出
1 4 9 16 Loop breaks and comes out of the loop
类似地,我们可以在 do-while 循环中使用 break 语句。我们频繁使用 break 语句的另一个场景是 C 语言中的 switch case,我们已在之前的教程中学过。
C 语言中使用的另一个重要关键字是 continue,它跳过部分执行并继续执行其余部分。continue 语句的语法非常简单,如下所示:
continue;

当 if 语句中指定的条件返回 true 时,'continue' 后编写的代码块将不会执行。
假设我们想打印 1 到 10 之间的奇数,循环将是这样的:
#include<stdio.h>
void main()
{
for (int i=1;i<=10;i++)
{
if(i%2==0)
continue;
printf("\n%d",i);
}
}
输出
1 3 5 7 9
请注意,我们已将 'i' 的初始值设为 1。在第一个循环周期中,'for' 检查 i 的值是否小于或等于 10。由于 1<10,循环内的代码将执行,其中 if 语句检查 i 除以 2 的余数是否为零。由于 1%2 不等于零,它会打印值 1。然后,当经过 i++ 时,'i' 的值从 1 递增到 2。
现在 'for' 再次检查,发现 2<10,控制转移到 if,if 检查 2%2,得到的余数为零,条件变为真,continue 语句将跳过其下的代码并继续进行递增。
类似地,3、4、.... 直到 10 都会被求值,并产生如代码片段所示的输出。
‘goto’ 语句,顾名思义,它将程序控制转移到一个预定义的标签。因此,它被称为跳转语句。 'goto' 语句可以中途停止程序的执行,并将其切换到另一部分。由于它打破了正常的执行周期,除非不可避免,否则在程序中总是不鼓励使用它。
goto 语句的语法如下:
goto label_name;
.. ..
.. ..
label_name: C-block or statements
考虑以下循环:
#include<stdio.h>
void main()
{
int i=1;
printf("Square of numbers 1 to 10 :");
square:
printf("\n%d",(i*i));
i++;
if(i<=10)
{
goto square;
}
}
输出
Square of numbers 1 to 10 : 1 4 9 16 25 36 49 64 81 100
在这段代码片段中,我们展示了 goto 语句是如何工作的。最初,我们将 i 的值赋为 1。接下来是 print 语句,然后流程转移到 if 语句,它检查条件并执行 goto 语句。当遇到 goto 语句时,其控制转移到那个标签。这里的标签是 square,其中包含一个 print 语句和一个递增操作。这将持续进行,直到 if 条件失败。