C语言 break语句

C语言 break语句

C语言中的break是一个循环控制语句,当遇到一个循环时就会终止。它可以在循环或开关语句中使用,以使控制权离开块。break语句每次只能从一个循环中断开。

语法:

break;

以下三种类型的循环将与break语句一起使用。

  • 简单的循环
  • 嵌套循环
  • 无限循环

使用简单循环的中断声明

C++中的break语句可以用于简单的循环,即for循环、while循环和do-while循环。

例1:带有for循环的break语句

C 休息声明

在for循环中的break语句的工作

// C Program to demonstrate break statement with for loop
#include <stdio.h>
  
int main()
{
  
    for (int i = 1; i < 5; i++) {
        if (i == 3) {
            break;
        }
        else {
            printf("%d ", i);
        }
    }
    return 0;
}

输出

1 2 

例2:带有while循环的break语句

C 休息声明

在while循环中的中断工作

// C Program to demonstrate break statement with while loop
#include <stdio.h>
  
int main()
{
    int i = 1;
    while (i <= 5) {
        if (i == 3) {
            break;
        }
        else {
            printf("%d ", i);
        }
        i++;
    }
    return 0;
}

输出

1 2 

例3:带有Do-while循环的break语句

C 休息声明

在do-while循环中的中断工作

// C Program to demonstrate break statement with do-while
// loop
#include <stdio.h>
  
int main()
{
    int i = 1;
    do {
        if (i == 3) {
            break;
        }
        else {
            printf("%d ", i);
        }
      i++;
    } while (i <= 5);
  return 0;
}

输出

1 2 

嵌套循环的break语句

在处理嵌套循环时,也可以使用break语句。控制将只从使用中断语句的那个循环中出来。

示例:

// C program to illustrate
// using break statement
// in Nested loops
#include <stdio.h>
  
int main()
{
    // nested for loops with break statement
    // at inner loop
    for (int i = 1; i <= 6; ++i) {
        for (int j = 1; j <= i; ++j) {
            if (i <= 4) {
                printf("%d ", j);
            }
            else {
                // if i > 4 then this innermost loop will
                // break
                break;
            }
        }
        printf("\n");
    }
    return 0;
}

输出

1 
1 2 
1 2 3 
1 2 3 4 

注意:Break语句一次只能跳出一个循环。因此,如果在嵌套循环中,我们在内循环中使用了break语句,那么控制权将进入外循环,而不是一次脱离所有的循环。如果我们想跳出所有的循环,我们必须使用多个break语句。

无限循环的中断语句

无限循环可以用break语句作为条件的一部分来终止。

// C Program to demonstrate infinite loop without using
// break statement
#include <stdio.h>
  
int main()
{
  
    int i = 0;
    // while loop which will always be true
    while (1) {
        printf("%d ", i);
        i++;
    }
    return 0;
}

输出:

Execution timed out 

注意 : 请不要在你的编译器中运行上述程序,因为它是一个无限循环,所以你可能不得不强行退出编译器来终止程序。

在上述程序中,循环条件总是为真,这将导致循环无限期地执行。这可以通过使用break语句来纠正,如下图所示。

示例:

// C Program to demonstrate infinite loop using
// break statement
#include <stdio.h>
  
int main()
{
  
    int i = 0;
    // while loop which will always be true
    while (1) {
        if (i > 8) {
            // if i will be greater than 8 then program
            // control will be outside the while loop
            break;
        }
        printf("%d ", i);
  
        i++;
    }
    return 0;
}

输出

0 1 2 3 4 5 6 7 8 

在上述代码中,借助于break语句,循环的迭代被限制为8次。

带有Switch case的break语句

一般来说,Switch case 语句会评估一个表达式,并根据表达式的值,执行与该值相关的语句。不仅如此,在匹配的case之后的所有case也将被执行。为了防止这种情况,我们可以在switch case中使用break语句,如图所示。

语法:

switch(expression)
{    
case value1:    statement_1; break;

case value2:    statement_2; break;

.....
......
......
case value_n:    statement_n; break;


default:     default statement;

}

示例:

// C Program to demonstrate working of break with switch
// case
#include <stdio.h>
#include <stdlib.h>
  
int main()
{
    char c;
    float x, y;
  
    while (1) {
        printf("Enter an operator (+, -), if want to exit "
               "press x: ");
        scanf(" %c", &c);
        // to exit
        if (c == 'x')
            exit(0);
  
        printf("Enter Two Values:\n ");
        scanf("%f %f", &x, &y);
  
        switch (c) {
        // For Addition
        case '+':
            printf("%.1f + %.1f = %.1f\n", x, y, x + y);
            break;
        // For Subtraction
        case '-':
            printf("%.1f - %.1f = %.1f\n", x, y, x - y);
            break;
        default:
            printf(
                "Error! please write a valid operator\n");
        }
    }
}

输出:

Enter an operator (+, -), if want to exit press x: +
Enter Two Values:
10
20
10.0 + 20.0 = 30.0

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程