3.7 C++switch语句 | 判断某年某月有几天

举报
C语言入门到精通 发表于 2021/02/12 00:50:39 2021/02/12
【摘要】 C++多分支选择结构switch语句是多分支选择语句,用来实现多分支选择结构,switcht的一般形式如下,和C语言基本上一样,只是输出语句不同。switch(表达式) { case 常量表达式1:语句1 case 常量表达式2:语句2 …… case 常量表达式n:语句n default:语句n+1 } switch后面的括号里的表达式,原则上允许为任何类...

C++多分支选择结构

switch语句是多分支选择语句,用来实现多分支选择结构,switcht的一般形式如下,和C语言基本上一样,只是输出语句不同。

switch(表达式)
{
  case 常量表达式1:语句1
  case 常量表达式2:语句2
  ……
  case 常量表达式n:语句n
  default:语句n+1
}

switch后面的括号里的表达式,原则上允许为任何类型,多个case可以共用一组执行语句。

当swtich表达式的值与大括号里面的某一个case子句中的变量表达式的值相同时,就会执行此case子句后面的语句。

当所有的case子句中的常量表达式的值没有一个和switch表达式的值相同时,会执行default子句后面的语句。

switch后面大括号里面的每一个case表达式的值必须不同,否则就会出现相互矛盾。

大括号里面的case和default出现的次序不影响执行结果,也就是读者就算把default放到第一行也可以。

执行完一个case子句后,流程控制会转移到下一个case子句继续执行,case常量表达式只是起到语句标号作用,并不是在该处进行条件判断。

在执行switch语句时,根据表达式的值找到与之匹配的case子句后,就从这个case子句开始执行了,不再进行判断。

如果需要使流程跳出switch语句,可以用break语句。

案例:判断某年是否使闰年,并且判断这年的某月有几天。

#include <iostream>
using namespace std;
int main()
{
  int year, month, mon;
  cout << "输入年份和月份,年月之间用空格隔开" << endl;
  cin >> year >> month; if (month < 1 || month>12)
  { cout << "输入的月份不存在" << endl;
  }
  else { if ((year % 4 == 0 && year % 100 != 0) || year % 100 == 0) { mon = 1; cout <<year<< "年是闰年" << endl; } else { mon = 2; cout <<year<< "年是平年" << endl; }
  }
  switch (month)
  {
  case 1:cout << "你输入的1月有31天"; break;
  case 2: if (mon==1) { cout << "你输入的2月有29天"; } else { cout << "你输入的2月有28天"; }; break;
  case 3:cout << "你输入的3月有31天" << endl; break;
  case 4:cout << "你输入的4月有30天" << endl; break;
  case 5:cout << "你输入的5月有31天" << endl; break;
  case 6:cout << "你输入的6月有30天" << endl; break;
  case 7:cout << "你输入的7月有31天" << endl; break;
  case 8:cout << "你输入的8月有31天" << endl; break;
  case 9:cout << "你输入的9月份有30天" << endl; break;
  case 10:cout << "你输入的10月有31天" << endl; break;
  case 11:cout << "你输入的11月有30天" << endl; break;
  case 12:cout << "你输入的12月有31天" << endl; break;
  default:cout << "输入有误!" << endl;
  break;
  }
}

执行本程序之后

输入年份和月份,年月之间用空格隔开

2020 10

2020年是闰年

你输入的10月有31天

3.7 C++switch语句 | 判断某年某月有几天 mp.weixin.qq.com

文章来源: zhuanlan.zhihu.com,作者:,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuanlan.zhihu.com/p/325826569

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。