C++学习笔记:switch语句

switch语句在多个判断条件的时候可以代替if语句
下面举个例子来展示两者的区别和各自的优势
if语句的实现

int main()
{
	int i;
	cout << "请输入今天是星期几:";
	cin >> i;
	if(i==1)
		cout << "今天是星期1"<<endl;
	else if(i==2)
		cout << "今天是星期2" << endl;
	else if (i == 3)
		cout << "今天是星期3" << endl;
	else if (i == 4)
		cout << "今天是星期4" << endl;
	else if (i == 5)
		cout << "今天是星期5" << endl;
	else if (i == 6)
		cout << "今天是星期6" << endl;
	else if (i == 7)
		cout << "今天是星期日" << endl;
	else
		cout << "错误的输入" << endl;
}

可以看见在有很多判断情况的时候,用if语句就看着很乱
因此要用switch语句来简化
但是使用switch语句有一个特别需要注意的地方,我们来用下面的例子进行说明。

int main()
{
	int i;
	cout << "请输入今天是星期几:";
	cin >> i;
	switch (i)
	{
	case 1:cout << "今天是星期1" << endl;
	case 2:cout << "今天是星期2" << endl;
	case 3:cout << "今天是星期3" << endl;
	case 4:cout << "今天是星期4" << endl;
	case 5:cout << "今天是星期5" << endl;
	case 6:cout << "今天是星期6" << endl;
	case 7:cout << "今天是星期7" << endl;
	default:cout << "错误输入" << endl;
	}
}

如果输入2,则C++语言就会把case2以下的所用情况都会进行输出,结果如下:
在这里插入图片描述
以上这种情况在专业术语中称之为“贯穿”因此为了避免贯穿,要在每个case中加入一个break进行语句的跳出,如下所示:

int main()
{
	int i;
	cout << "请输入今天是星期几:";
	cin >> i;
	switch (i)
	{
	case 1:cout << "今天是星期1" << endl; break;//这个地方可以不写大括号{},这是switch语句特殊的地方
	case 2:cout << "今天是星期2" << endl; break;//case后面必须跟整数
	case 3:cout << "今天是星期3" << endl; break;
	case 4:cout << "今天是星期4" << endl; break;
	case 5:cout << "今天是星期5" << endl; break;
	case 6:cout << "今天是星期6" << endl; break;
	case 7:cout << "今天是星期7" << endl; break;
	default:cout << "错误输入" << endl; break;//default实际上就是else
	}
	system("pause");
}

因此我们在用switch语句的时候要根据是否需要贯穿灵活地选择是否使用break。
当然switch语句不能完全替代if语句,只能在特殊的if情况下替代if
这里需要特别注意的是:
①switch语句中case后面只能跟一个整数,不能是小数
②case后面只能判断等于的情况不能判断大于或小于的情况

因此在上述情况下只能用if语句!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值