switch-case语句里的一些注意事项

switch-case语句里的一些注意事项:

在switch-case语句里,在case这一层可以声明变量,但不能初始化;

解决方法:

  1. 在case外面先声明初始化完,再在case里使用。
  2. 用if-else来代替switch。
  3. case后面加上{  }。//(由于switch的几个case语句在同一个作用域(因为case 语句只是标签,它们共属于一个swtich语句块),所以如果在某个case下面声明变量的话,对象的作用域是在俩个花括号之间 也就是整个switch语句,其他的case语句也能看到,这样的话就可能导致错误。

(我们可以通过在case后面的语句加上大括号处理,之所以加大括号就是为了明确我们声明的变量的作用域,就是仅仅在本case之中,其实为了更规范的写switch-case语句,我们应该在case语句后边加大括号。

就像洛谷题单里的顺序结构里有一道题可以这么写:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a;
	scanf("%d",&a);
	switch(a)
	{
		case 1:printf("I love Luogu!");break;
		case 2:
			{
			   int all=10,b=2,u=4;
		       int ba;
		       ba=all-b-u;
		       printf("%d %d",a+u,ba);
			   break;
		    }
		case 3:{
			int apple = 14;
			int stu = 4;
			int m,n,v;
			m=apple/stu;
			v=m*stu;
			n=apple%stu;
			printf("%d\n%d\n%d",m,v,n);
			break;
		}
		case 4:{
			double t;
			t=500.0/3.0;
			printf("%.3lf",t);
			break;
		}
		case 5:{
			printf("%d",(260+220)/(12+20));
			break;
		}
		case 6:{
			cout<<sqrt(6*6+9*9);
			break;
		}
		case 7:{
			printf("%d\n",100+10);
			printf("%d\n",100+10-20);
			printf("%d",0);
			break;
		}
		case 8:{
			double pi=3.141593;
			int r=5;
			cout<<2*pi*r<<endl;
			cout<<pi*r*r<<endl;
			cout<<4*pi*r*r*r/3;
			break;
		}
		case 9:{
			int g=1;
			int w;
			for( w=0;w<3;w++){
				g=(g+1)*2;
			}
			printf("%d",g);
			break;
		}
		case 10:{
			printf("%d",9);
			break;
		}
		case 11:{
			cout<<100.0/3.0;
			break;
		}
		case 12:{
			char a='A';
			printf("13\n");
			printf("%c",a+17);
			break;
		}
		case 13:{
			int pi=3.141592653;
			
			cout<<(int)pow(4*pi*4*4*4/3+4*pi*10*10*10/3,(1.0/3.0));
			break;
		}
		case 14:{
		int a[2];
		int j = 0;
		for (int i = 0; i < 100; i++)
		{
			if ((110 - i) * (10 + i) == 3500)
			{
				a[j++] = 110 - i;
			}
		}
		if (a[0] >= a[1])
			cout << a[1];
		else
			cout << a[0];
	}
	return 0;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值