代码基础知识-11switch选择

switch的基本形式:

switch(值)
{
case 常量:
		//代码
		break;
	case 常量:
		//代码
		break;
	default:	
	break;
}	

当有多种不同常量的等值判断时,相较于多层if-else,switch代码简便的多


做一个计算器

			Console.WriteLine("请输入第一个数");
			double a = Convert.ToDouble(Console.ReadLine());
			Console.WriteLine("请输入第二个数");
			double b = Convert.ToDouble(Console.ReadLine());
			Console.WriteLine("请输入操作符");
			switch (Console.ReadLine())
			{
    
    
				case "+":
					Console.WriteLine(a + b); break;
				case "-":
					Console.WriteLine(a - b); break;
				case "*":
					Console.WriteLine(a * b); break;
				case "/":
					Console.WriteLine(a / b); break;
				case "%":
					Console.WriteLine(a % b); break;
				default:
					Console.WriteLine("您的输入有误");
					break;
			}

点菜单

Console.WriteLine("本店有红烧鲤鱼,红烧鲤鱼,红烧鲤鱼和红烧鲤鱼。按1选择吃,按2选择不吃");
			switch (Console.ReadLine())
			{
    
    
				case "1":
					Console.WriteLine("您的账单请查收\n您一共消费8848元");
					break;
				case "2":
					Console.WriteLine("慢走不送");
					break;
				default:
					Console.WriteLine("输入有误");
					break;
			}

选择奖励

			Console.WriteLine("选择您的奖励:\n1.随机一件装备中的物品等级+1\n2.恢复70%最大生命值\n3.获得2-4本附魔书\n4.恢复装备所有耐久度并获得500金币");
			switch (Console.ReadLine())
			{
    
    
				case "1":
				case "2":
				case "3":
				case "4":
					Console.WriteLine("功能未实装");
					break;
			}

编译器会先将case值类型转化为判断值的类型
case值不能相同,因此不能存在变量

当判断值与case标签值均不同时执行default标签(如果有default标签)
case标签的顺序没有要求也没有影响

如case后面没有执行语句,会顺延至下一条case的执行语句
执行语句后不能继续贯穿case,不能通过顺序执行脱离switch
阻止贯穿和脱离的一般方法是break

用于判断的值可以为常量,但这样做没有意义。会出现大量的不可达代码

double a = 4;
			switch (a)
			{
    
    
				case 4:
				case 2+2.0:
				case 3f:
				default:
					break;
			}

代码报错,理由为case值重复

猜你喜欢

转载自blog.csdn.net/zms9110750/article/details/106589736