Continue还是Break?一篇文章告诉你

目录

引言

C语言中的循环结构:

C,or  B ?

 break在分支语句的使用

应用举例

为什么会这样?


引言

分支语句中,常用if...else编写分支语句,来作出各个条件下的判断与选择;

下文即为使用C++编写的判断平年闰年的程序。

#include <iostream>
using namespace std;
int main()
{
    int year = 0; //这是北京大学李戈教授在授课时编写的
    cin >> year;
    if (year %4 == 0) //判断方法:能被4整除,但不能被100整除
    {
        if (year % 100 == 0)//或能被100整除,又能被400整除,即为闰年。
        {
                if (year % 400 == 0)
                        cout <<"Y";
                else
                        cout << "N";
        }
        else
                cout << "Y";
    }
    else
            cout <<"N";
    return 0;
}

 但在需要多次/重复判断来得出结果时,反复使用单次判断的if语句显然不切实际,就必须使用循环语句来解决问题:

C语言中的循环结构:

以C++为例,循环可大致分为四类:

  • for语句循环
  • while语句循环
  • do...while语句循环
  • goto语句和if语句构成循环

然而,不终止(或中止)的无限循环,在大部分情况下是没有实际意义的,故产生了“跳出循环”,和“结束循环”的需要,“continue”和“break”由此而生 (*╹▽╹*)

for(;;) //只打两个分号,便是最简单的一个无条件死循环;也可替换为while(true)
{
  ****** //这一行想填啥填啥  
}

C,or  B ?

continuebreak同属转向控制语句,都可在for,while,do...while使用;

break多用于跳出内层循环,即停止当前所处的循环,执行下一条语句

continue用于结束本次循环,并判断是否能进行第二次循环

实在记不住的话,可以看看两个词的释义:(*/ω\*)

break /breɪk/ v. 打破;打断;结束,终结

continue v.(使)继续,(使)持续,(中断后)再继续,又开始

 (流程图左为break,右为continue)

 break在分支语句的使用

事实上,不只是循环语句,分支语句有时也需要break。

比较典型的便是switch语句:(←你猜为什么要这样上色?)

应用举例
#include<iostream>
using namespace std;
int main()
{
    char grade = 'a';
    cin>>grade;
    switch (grade)
    {
    case 'a': cout <<"85~100"<<endl;
    case 'b': cout <<"70~84"<<endl;
    case 'c': cout <<"60~69"<<endl;
    case 'd': cout <<"<60"<< endl;
    default: cout << "error" <<endl;
    }
    return 0;
}

上面是一个用switch语句编写的学业等级分转化程序,可以将A,B,C,D,E五个学业等级,

转化为相应的分数范围;(e.g:输入A,即显示85~100,代表85-100分可以评为A级。)

然而,输出的却是以下内容:

a //这是我们输入的字符a
85~100//下方是输出结果
70~84
60~69
<60
error

没错,虽然输入了a,但是输出端却是把abcde全来一遍,甚至连error都不放过......

为什么呢?

因为没加break。

switch中某一个case后的常量表达式的值与表达式的值相等,则执行该case,其后面的所有case,包括default(如果在其后方)。故应在每个case后添上break来跳出分支。

修改后的程序如下:

#include<iostream>
using namespace std;
int main()
{
    char grade = 'a';
    cin>>grade;
    switch (grade)
    {
    case 'a': cout <<"85~100"<<endl;break;
    case 'b': cout <<"70~84"<<endl;break;
    case 'c': cout <<"60~69"<<endl;break;
    case 'd': cout <<"<60"<< endl;break;
    default: cout << "error" <<endl;
    }
    return 0;
}

再尝试输入:

a //输入a
85~100
d //输入d
<60
f //输入f
error
''互三连,互关注''  //这句话是我瞎打的,但是话是真的,主打一个话糙理不糙(手动狗头)
error//没错,也会输出error。

这样就正常工作了。

完结撒花!✿ヾ(◍°∇°◍)ノ゙

猜你喜欢

转载自blog.csdn.net/m0_54909552/article/details/131725754