博客
关于我
C++switch语句 | 判断某年某月有几天
阅读量:131 次
发布时间:2019-02-27

本文共 1804 字,大约阅读时间需要 6 分钟。

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 
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 <
<< "年是闰年" << endl; } else { mon = 2; cout <
<< "年是平年" << 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天

更多案例可以go公众号:C语言入门到精通

转载地址:http://qdfb.baihongyu.com/

你可能感兴趣的文章
MySQL集群解决方案(1):MySQL数据库的集群方案
查看>>
MySQL集群解决方案(2):主从复制架构
查看>>
MySQL集群解决方案(3):MyCat中间件
查看>>
MySQL集群解决方案(4):负载均衡
查看>>
MySQL集群解决方案(5):PXC集群
查看>>
MySQL面试宝典
查看>>
WAP短信:融合传统短信和互联网的新型通信方式
查看>>
mysql面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
查看>>
Mysql面试题精选
查看>>
MySQL面试题集锦
查看>>
mysql面试题,存储引擎InnoDB和MyISAM
查看>>
mysql面试题:为什么MySQL单表不能超过2000W条数据?
查看>>
mysql面试题:创建索引时会不会锁表?
查看>>
mysql面试题:高度为3的B+树可以存放多少数据?
查看>>
mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
查看>>
mysql驱动、durid、mybatis之间的关系
查看>>
mysql驱动支持中文_mysql 驱动包-Go语言中文社区
查看>>
MySQL高可用之——keepalived+互为主从
查看>>
MySQL高可用切换_(5.9)mysql高可用系列——正常主从切换测试
查看>>
MySQL高可用解决方案
查看>>