switch中的continue与break

看到一篇博客,很有意思,一起学习一下:https://blog.csdn.net/aerkate/article/details/7630600

首先贴上代码:

/**
* Copyright(c)
* All rights reserved.
* Date : 2021-07-31
* Description :
*/
#include <iostream>
using namespace std;
int main()
{
  int i,s1=0,s2=0,s3=0;
    for(i=1;i<=5;i++)
    {
      cout<<"i :"<<i<<'\n';
      cout<<'\n';
      switch(i)
        {
           case 1:s1++;
           case 2:s2++;break;  //中止当前switch
           case 3:s3++;continue;  //直接到i++
        }
      s1++;
      cout<<"s1:"<<s1<<'\t'<<"s2:"<<s2<<'\t'<<"s3:"<<s3<<'\n';
      cout<<'\n';
    }
}

执行顺序:(什么时候判断i<=5)

i = 1;

cout<<i;

switch(1)        case 1: s1++;

s1++;

cout<<s1<<s2<<s3;

i = 2;

cout<<i;

switch(2)        case 2: s2++; break;

执行s1++;

i = 3;

cout<<i;

switch(3)        case 3:s3++;continue;

i++ (此时i = 4)

cout<<i;

switch(4)  无可用case分支

s1++;

cout<<s1<<s2<<s3;

i=5;

cout<<i;

switch(5) 无可用case分支

s1++;

cout<<s1<<s1<<s3;

i=6(不满足for循环条件,跳出for循环)

End!

关键在于:

  • break用于while、do while、for、switch
  • continue用于while、do while、for中
  • “只有当switch语句嵌套在迭代语句内部时,才能在switch里使用continue”《C++ Primer 5th Edition》

posted @ 2021-08-06 16:50  Keep_Silent  阅读(56)  评论(0编辑  收藏  举报