java选择结构02_switch选择结构

1.switch多选结构

使用switch语句来选择要执行的代码块,与if条件分支语句比较类似。

【语法结构】

switch (表达式) {
	case 常量1:
		语句序列;
		[break;]
	case 常量2:
       	语句序列;
		[break;]
	case 常量3:
       	语句序列;
		[break; ]
   	……
	[default:]
       	默认语句;
       	[break;]
}

工作原理

switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。与任一case值不匹配,则进入default语句(如果存在default语句的情况)。

【注意事项】

  1. switch()中的数据类型只能为:byte、short、int、char、String(JDK7)和枚举(后面会学习)。

  2. case后面必须是常量,并且常量的类型应该和switch()中的数据类型保持一致。

    并且不允许有重复的case值。

  3. break用于跳出switch语句,根据需求我们我们可以省略break,

    如果没有break, 一旦进入case,导致后面的所有case都能进入, 直到遇到break或switch结束。

  4. default可以省略,但是最好不要省略,除非case能匹配所有的可case和default的是无序的,不过default只能最后执行或不执行。

【随堂练习】

1、 输入一个整数,对应的显示出星期几, 例如: 输入“1”,输出为“星期一” 。

2、 接收一个人的成绩, 如果成绩为: 90(包含)到100(包含)输出优秀, 70(包含)到90输出良好, 60(包含)到70输出及格, 60分以下输出不及格。

/**
 * 思路分析:
 *   合法的成绩区间所对应的等级:
 *		[90, 100]   --> [90, 100]/10 --> 结果:9或10  
 *		[70, 90)	--> [70, 90)/10  --> 结果:7或8 
 *		[60, 70)	--> [60, 70)/10  --> 结果:6 
 *		[0, 60)		--> [0, 60)/10   --> 结果:0、1、2、3、4、5	--> 不及格
 *	把获得的成绩score/10,根据获得的整数值得到对应的等级。
 *		score / 10,结果:9或10				则输出“优秀”		
 *		score / 10,结果:7或8  				则输出“良好”	
 *		score / 10,结果:6        			 则输出“及格”		
 *		score / 10,结果:0、1、2、3、4、5    则输出“不及格”
 * 实现步骤:
 *	 a)通过Scanner获得学生成绩,假设使用score变量保存。	
 *	 b)判断学生成绩是否合法,合法成绩区间:[0, 100]
 *	 c)如果学生成绩合法,则根据学生成绩输出对应等级。 	
 */
public class SwitchTest02 {
	public static void main(String[] args) {
		// 1.通过Scanner获得学生成绩
		Scanner input = new Scanner(System.in);
		System.out.print("请输入学生成绩:");
		int score = input.nextInt();
		// 2.判断学生成绩是否合法,合法成绩区间:[0, 100]
		if(score < 0 || score > 100) {
			System.out.println("成绩输入有误,请重新输入!");
		}
		else { // 合法情况,score的范围:[0, 100]
			// 3.如果学生成绩合法,则根据学生成绩输出对应等级。  	
			switch(score/10) {
				case 10:
				case 9:
					System.out.println("优秀");
					break;
				case 8:
				case 7:
					System.out.println("良好");
					break;
				case 6:
					System.out.println("及格");
					break;	
				default:
					System.out.println("不及格");	
			}
		}
	}
}

3、 查询水果的价格,根据输入水果(fruit)的名字,输出对应的水果的价格,例如苹果6块/斤,香蕉3元/斤,榴莲20元/斤,西瓜0.8元/斤。

public class SwitchTest01 {
	public static void main(String[] args) {
		// 1.通过Scanner获得水果名字
		Scanner input = new Scanner(System.in);
		System.out.print("请输入水果名字:");
		String fruit = input.nextLine();
		// 2.根据水果名字,输出对应的水果的价格
		switch(fruit) {
			case "苹果":
				System.out.println(fruit + "6元/斤");
				break;
			case "香蕉":
				System.out.println(fruit + "3元/斤");
				break;
			case "榴莲":
				System.out.println(fruit + "20元/斤");
				break;
			case "西瓜":
				System.out.println(fruit + "0.8元/斤");
				break;	
			default:
				System.out.println("本店还没进货,下次再来!");
				break;
		}
	}

2.switch和if的区别

switch:建议判断固定值的时候用。

if:建议判断区间或范围的时候用,对运算结果是boolean类型的表达式进行判断。

注意:用switch能做的,用if都能做,但反过来则不行。

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了55 篇原创文章 · 获赞 0 · 访问量 783

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104639493