在C语言中,break和continue都是跳出循环的。 有什么不同?

 2024-01-21 03:02:23  阅读 0

首先:break只能用在循环语句中,而break可以用在循环和语句中,两者都是辅助循环; 不过,如果该语句位于循环中,则可以将其用作该语句的一部分; 在这种情况下,就像在其他循环中一样,让程序跳出循环的其余部分,包括语句的其余部分。

一般来说,程序进入循环后,循环体内的所有语句都会在下一次循环测试之前执行。 语句可以根据循环体内的测试结果忽略部分循环内容甚至结束循环。

C语言中的循环语句共有三种类型: while(); 执行 while(); 为了; 所有三种类型的循环都可以使用break语句。

对于语句,当执行该语句时,将跳过本次迭代的剩余部分,开始下一轮迭代; 但是,如果该语句位于嵌套循环内部,则只会影响包含该语句(即该语句)的内层循环(即内循环后面的语句不会被执行,而是跳出该循环后)内循环,外循环内的语句将正常执行。);

但是,对于 while() 和 do while() 循环,执行语句后的下一个操作是评估循环的测试表达式,请参阅代码示例:

#include 
 
int main() {
 
    //while()
    char CH;
    int count=0;
    while(count < 10){
        CH = getchar();
        if(CH != ' ')
            continue;
        putchar(CH);
        count++;
    }
    printf("Hello, World!\n");
    return 0;
}

对于 for 循环,执行后的下一个操作是评估更新表达式,然后评估循环测试表达式。 以下代码示例涵盖了嵌套循环中使用的情况:

#include 
int main() {
    char ch;
    int cunt;
    int i;
    for(cunt=0;cunt<10;cunt++){
        ch = getchar();
        for(i=0;i<5;i++){
            if (ch != ' ')
                continue;
            putchar(ch);
            printf("我是内层循环的---小可爱!!!\n");
        }
        printf("我是外层循环的---小可爱!!!\n");
        printf("如果continue语句在嵌套循环内,则只会影响包含continue的内层循环,不影响外层循环!!!\n");
    }
    printf("Hello, World!\n");
    return 0;
}

对于中断语句:

当程序在循环中执行break语句时,将终止包含它的循环并继续执行下一阶段; 如果break位于嵌套循环内部,它只影响包含它的当前循环。

对比一下break和程序执行的区别,见下图:

:

continue语句的作用是结束整个循环的执行_语句循环结构_什么语句结束循环

跳出本次循环,执行下一个循环。

休息:

continue语句的作用是结束整个循环的执行_语句循环结构_什么语句结束循环

break 跳出整个循环

让我们看一下示例代码:

#include 
int main() {
    //while()
    char CH;
    int count=0;
    while(count < 10){
        CH = getchar();
        if(CH != ' ')
            break;
        putchar(CH);
        count++;
    }
    printf("Hello, World!\n");
    return 0;
}

for 循环和嵌套循环的示例:

注意:只会直接跳出内循环,外循环会正常执行。

#include  
int main() {
    char ch;
    int cunt;
    int i;
    for(cunt=0;cunt<10;cunt++){
        ch = getchar();
        for(i=0;i<5;i++){
            if (ch != ' ')
                break;
            putchar(ch);
            printf("我是内层循环的---小可爱!!!\n");
        }
        printf("我是外层循环的---小可爱!!!\n");
        printf("如果continue语句在嵌套循环内,则只会影响包含continue的内层循环,不影响外层循环!!!\n");
    }
    printf("Hello, World!\n");
    return 0;
}

如果想让外层循环同时终止,需要在外层使用break;

#include 
int main() {
    char ch;
    int cunt;
    int i;
    for(cunt=0;cunt<10;cunt++){
        ch = getchar();
        for(i=0;i<5;i++){
            if (ch != ' ')
                break;
            putchar(ch);
            printf("我是内层循环的---小可爱!!!\n"); 
        }
        if (ch != ' ')
            break;
        printf("我是外层循环的---小可爱!!!\n");
        printf("如果continue语句在嵌套循环内,则只会影响包含continue的内层循环,不影响外层循环!!!\n");
    }
    printf("Hello, World!\n");
    return 0;
}

在多重选择语句中使用和break的示例:

/* animals.c -- uses a switch statement */
#include 
#include 
int main(void)
{
    char ch;    
    printf("Give me a letter of the alphabet, and I will give ");
    printf("an animal name\nbeginning with that letter.\n");
    printf("Please type in a letter; type # to end my act.\n");
    while ((ch = getchar()) != '#')
    {
        if('\n' == ch)
            continue;
        if (islower(ch))     /* lowercase only          */
            switch (ch)
        {
            case 'a' :
                printf("argali, a wild sheep of Asia\n");
                break;
            case 'b' :
                printf("babirusa, a wild pig of Malay\n");
                break;
            case 'c' :
                printf("coati, racoonlike mammal\n");
                break;
            case 'd' :
                printf("desman, aquatic, molelike critter\n");
                break;
            case 'e' :
                printf("echidna, the spiny anteater\n");
                break;
            case 'f' :
                printf("fisher, brownish marten\n");
                break;
            default :
                printf("That's a stumper!\n");
        }                /* end of switch           */
        else
            printf("I recognize only lowercase letters.\n");
        while (getchar() != '\n')
            continue;      /* skip rest of input line */
        printf("Please type another letter or a #.\n");
    }                        /* while loop end          */
    printf("Bye!\n");    
    return 0;
}

本例中的功能与上面类似,但break的功能不同:它允许程序离开该语句,跳转到该语句之后的下一条语句; 如果没有break语句,则从匹配的标签处开始执行到末尾;

注意:C语言中的case一般指定一个值,不能使用范围; 括号内的测试表达式的值应该是整数值(包括char类型); case 标签必须是整型(包括 char 类型)常量或整型常量表达式(即表达式仅包含整型常量)。不能使用变量作为 case 标签

有一个休息时间

语句循环结构_continue语句的作用是结束整个循环的执行_什么语句结束循环

遇到break后跳出继续匹配。

没有休息

语句循环结构_continue语句的作用是结束整个循环的执行_什么语句结束循环

按顺序执行每个案例。

标签: 循环 语句 跳出

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码