RHZ'S BLOG | 个人分享

  • 首页
  • 笔记
  • 小日常
  • 音乐
  • 读书
  • 软件分享
YOLO
  1. 首页
  2. 笔记
  3. C/C++
  4. 正文

条件判断|C++

2022年9月1日 149点热度 0人点赞 0条评论

switch判断

有时候,我们需要对一个变量进行多次判断,比如,输入一个阿拉伯数字,然后输出今天是星期几,那我们该怎么办?

int day = 7;
if (day == 1) {
  cout <<"星期一";
}
if (day == 2) {
  cout << "星期二";
}
if (day == 3) {
  cout << "星期三";
}
if (day == 4) {
  cout << "星期四";
}
if (day == 5) {
  cout << "星期五";
}
if (day == 6) {
  cout << "星期六";
}
if (day == 7) {
  cout << "星期天";
}

是不是觉得代码特别冗余?switch就很好的解决了这类问题

switch的语法

switch语句根据values的值来判断变量是否相等:

switch (条件变量) {
  case value1:
    //满足value1需要执行的代码
    break;
  case value2:
    //满足value2需要执行的代码
    break;
    ...
  case valueN:
    //满足valueN需要执行的代码
    break;
}

switch语句会从上至下判断条件变量的值是否跟value相等,相等,则执行相关的代码。

switch可以包含任意数量的case(条件分支)。

switch实例

回到刚才敲钟的问题上,如果我们不使用if语句,而是使用switch实现要怎么写?

int time = 12;
switch (time) {
  case 0:
    cout << "bell";
    break;
  case 12:
    cout << "bellbellbell";
    break;
}

break语句

break语句的作用是终止switch语句。

其实,switch语句在寻找到相应case并执行以后,并不会停止,而是会继续向下执行,直到所有case被遍历,所以,我们执行完相应的case以后,可以使用break语句,终止switch语句继续向下执行。

同样的,我们也可以利用break语句控制多个case执行相同的代码:

int month = 7;
switch (month) {
  case 1:
  case 2:
  case 3:
    cout << "春季" << endl;
    break;
  case 4:
  case 5:
  case 6:
    cout << "夏季" << endl;
    break;
  case 7:
  case 8:
  case 9:
    cout << "秋季" << endl;
    break;
  case 10:
  case 11:
  case 12:
    cout << "冬季" << endl;
    break;
  default:
    cout <<"不存在该月份" << endl;
}

当月份为7月份,case分支并不会在7月份停止,而是继续往下执行,直到在case9的时候遇到了break,所以在使用switch的时候需要谨慎。

default语句

default语句其实类似于else语句--当所有case都不被满足的时候执行。

用户进行输入的,那用户的行为是不可测的,可能出现意料之外的情况,所以我们就需要default语句对这种情况进行处理。

因为default一般在case的最末尾,所以default语句可以不使用break语句进行退出。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年9月1日

RHZ

即使单枪匹马,我亦勇敢无畏

点赞
< 上一篇
下一篇 >

文章评论

取消回复
归档
  • 2023年2月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年8月
  • 2021年7月

COPYRIGHT © 2022 RHZ的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2022008933号-1