C 语言中的循环控制语句


2021年8月23日, Learn eTutorial
1985

在本教程中,您将通过简单的示例掌握 C 语言中所有关于循环控制语句的知识,如 break、continue 和 goto。C 编程语言支持三种独特的循环方式:for 循环、while 循环和 do-while 循环,您已在之前的 C 语言循环教程中学习过。

C Break 语句

在 C 语言的 32 个关键字中,break 是与循环一起最常用的关键字。一个 break 语句由关键字 break 后跟一个分号构成。break 语句用于立即中断循环执行序列。其原型如下:

break; 

break 语句在循环中的工作原理

break 语句主要与循环和 switch case 中的 if 语句一起使用。首先,我们可以了解 break 语句在循环中是如何工作的,以中断循环控制。

Break Statement

For 循环中的 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 时,循环中断并跳出循环,打印紧接在循环外的语句。

While 循环中的 Break 语句 - 示例

#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 语句

C 语言中使用的另一个重要关键字是  continue,它跳过部分执行并继续执行其余部分。continue 语句的语法非常简单,如下所示:

continue; 

continue 语句在循环中的工作原理

ContinueStatement

当 if 语句中指定的条件返回 true 时,'continue' 后编写的代码块将不会执行。

For 循环中的 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 都会被求值,并产生如代码片段所示的输出。

C goto 语句

‘goto’ 语句,顾名思义,它将程序控制转移到一个预定义的标签。因此,它被称为跳转语句。 'goto' 语句可以中途停止程序的执行,并将其切换到另一部分。由于它打破了正常的执行周期,除非不可避免,否则在程序中总是不鼓励使用它。

goto 语句的语法如下:

goto label_name;
.. ..
.. ..
label_name: C-block or statements
 

Goto 语句 - 示例

考虑以下循环:

#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 条件失败。