![cover](https://img-blog.csdnimg.cn/img_convert/0022358d286a4441aeb84c4c25b87e4f.png)
C++ 入门 - 6 - 判断语句 —— switch语句
如果你没有看上一课可以去看一看.对于所有题目都建议自己用 C++ 试一试.
如果你没有看上一课 C++ 入门 - 3 - 判断语句 —— if语句 可以去看一看.
对于所有题目都建议自己用 C++ 试一试.
1.switch语句的基本结构
如果要写的话就像这样:
switch(变量)
{
case 值:
{
语句;
break;
}
case 值:
{
语句;
break;
}
case 值:
{
语句;
break;
}
......
default:
{
语句;
break;
}
}
在 C++ 的 switch 语句中有两个关键的单词, 一个是 case, 一个是 default.
case 后面跟一个值然后写一个冒号, 作用类似于 if 语句中的 if 或者 else if.
而 default 后面直接跟一个冒号, 作用类似于 if 语句中的 else.
break 表示退出 switch 语句.
[注意: 我们在每个 case 或 default 的最后都要写一个 break, 否则会给你输出一些奇怪的东西].
2.代码片段
switch(mark)
{
case '+':
{
cout << "plus";
break;
}
case '-':
{
cout << "minus";
break;
}
case '*':
{
cout << "times";
break;
}
case '/':
{
cout << "divided by";
break;
}
default:
{
cout << "No found";
break;
}
}
这段代码的意思是,
如果字符型变量 mark 的值为 + , 就输出 plus.
如果值为 - , 就输出 minus.
如果值为 * , 就输出 times.
如果值为 / , 就输出 divided by.
如果都不满足, 就输出 No found.
3.if 和 switch 的选择
对于 if 语句和 switch 语句的选择, 如果是针对同一个变量的判断, 建议选择 switch 语句, 如果是针对两个或两个以上的变量的判断, 建议选择 if 语句.
4.实例讲解 1
4.1.题目描述
今天是星期几
某款手机需要你由数字输出对应的星期.
如:
输入: 1 输出: Monday
输入: 4 输出: Thursday
输入: 5 输出: Friday
4.2.输入格式
输入一个整数.
4.3.输出格式
输出该整数对应的单词.
4.4.代码
因为这道题的星期几是针对同一个变量的, 所以用 switch 语句.
#include <bits/stdc++.h> // 这行是头文件
using namespace std; // 这行是命名空间
int main() // 这行是函数名C++的主函数 main函数
{
int day; // 这行声明了整型变量 day
cin >> day; // 这行可以在控制台输入整型变量 day
switch(day) //如果变量 day
{
case 1: // 为 1
{
cout << "Monday"; // 这行可以在控制台输出 Monday
break; // 退出 switch
}
case 2: // 为 2
{
cout << "Tuesday"; // 这行可以在控制台输出 Tuesday
break; // 退出 switch
}
case 3: // 为 3
{
cout << "Wednesday"; // 这行可以在控制台输出 Wednesday
break; // 退出 switch
}
case 4: // 为 4
{
cout << "Thursday"; // 这行可以在控制台输出 Thursday
break; // 退出 switch
}
case 5: // 为 5
{
cout << "Friday"; // 这行可以在控制台输出 Friday
break; // 退出 switch
}
case 6: // 为 6
{
cout << "Saturday"; // 这行可以在控制台输出 Saturday
break; // 退出 switch
}
case 7: // 为 7
{
cout << "Sunday"; // 这行可以在控制台输出 Sunday
break; // 退出 switch
}
default: //否则
{
cout << "No found."; // 这行可以在控制台输出 No found.
break; // 退出 switch
}
}
return 0; // 这行是返回值
}
可以看到他成功输出了 Saturday.
5.实例讲解 2 - switch 与 if 的嵌套
5.1.题目描述
这个月有几天
某款智能手机想要加入计算每个月有几天的功能
如:
输入: 2024 2 输出: 29
输入: 2023 2 输出: 28
输入: 2025 5 输出: 31
扩展资料
闰年产生原因:
通常的解释是说一年有多少天多少小时多少分,取整数365还有多余的,累积达到一天24小时后,就多加一天的年是闰年。这个解释只是告诉了大家怎么计算,是人为设置的东西。
最根本的原因是:地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为每四年累计一天,故第四年于2月末加1天,使当年的历年长度为366日,这一年就为闰年。
现行公历中每400年有97个闰年。按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来。因此每四百年中要减少三个闰年。所以公历规定:年份是整百数时,必须是400的倍数才是闰年;不是400的倍数的世纪年,即使是4的倍数也不是闰年。
这就是通常所说的:四年一闰,百年不闰,四百年再闰。 例如,2000年是闰年,2100年则是平年。
5.2.输入格式
两个整数分别为当月的年份和月份.
5.3.输出格式
一个整数为当月的天数.
5.4.代码
#include <bits/stdc++.h> // 这行是头文件
using namespace std; // 这行是命名空间
int main() // 这行是函数名C++的主函数 main函数
{
int year, month; // 这行声明了整型变量 day
cin >> year >> month; // 这行可以在控制台输入整型变量 day
switch(month) //如果变量 day
{
case 1: // 为 1
case 3: // 为 3
case 5: // 为 5
case 7: // 为 7
case 8: // 为 8
case 10: // 为 10
case 12: // 为 12
{
cout << 31; // 这行可以在控制台输出 31
break; // 退出 switch
}
case 4: // 为 4
case 6: // 为 6
case 9: // 为 9
case 11: // 为 11
{
cout << 30; // 这行可以在控制台输出 30
break; // 退出 switch
}
case 2: // 为 2
{
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
cout << 29; // 这行可以在控制台输出 29
}
else
{
cout << 28; // 这行可以在控制台输出 28
}
break; // 退出 switch
}
default: //否则
{
cout << "No found."; // 这行可以在控制台输出 No found.
break; // 退出 switch
}
}
return 0; // 这行是返回值
}
2 月特殊, 因为百年不润, 四百年一润, 所以要设置如果不能被 400 整除, 就不是闰年.
在 switch 语句中连续写多个 case, 就可以让这多个 case 都执行第一个中间有代码的 case, 就可以实现 || (或) 的效果.
今天, 关于 switch 语句的博客就结束了.
6.最后一题
你可以用完成最后一道题吗?洛谷 P5711https://www.luogu.com.cn/problem/P5711
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)