Q6:Java中使用switch的一些细节问题

前言

switch(变量/表达式){
    
    
    case value :
       //执行的代码
       break; //可选
    case value :
      //执行的代码
       break; //可选
    default : //可选
        //执行的代码
}

一、使用思路

1.例子

示例:控制台输入等级,输出其含义

import java.util.Scanner;

public class day02_2 {
    
    

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		
		//创建Scanner对象 levelInput
		Scanner levelInput = new Scanner(System.in);
		
		//输入提示
		System.out.println("请输入你的等级");
		
		//调用levelInput方法,接收输入的值并赋值给变量
		String level = levelInput.next();
		
		//判断
		switch (level) {
    
    
		case "A":
			System.out.println("高等级");
			break;
		case "B":
			System.out.println("低等级");
			break;
		default:
			System.out.println("别乱输入");
			break;
		}
	}

}

2.注意事项

1.switch()中 支持的类型

case value :
       //执行的代码
       break; //可选

这边的value的支持哪些类型? String(本案例提到的,JDK1.7后有)、enum(JDK1.5后有)、byte、int、short、char;

2.break缺失的情况,如下会输出什么结果呢?

switch (level) {
    
    
		case "A":
			System.out.println("高等级");
		case "B":
			System.out.println("低等级");
			break;
		default:
			System.out.println("别乱输入");
			break;
		}

因为输入的是A,程序会跳转到case "A"的情况,所以输出高等级;但是没有break,程序还没有结束,所以继续执行下面的System.out.println(“低等级”);然后才break,所以结果是:
在这里插入图片描述

3.defaut位置问题

1.有break的情况(控制台输入C的情况)

1.default是在末端(正常位置)
switch (level) {
    
    
		case "A":
			System.out.println("高等级");
			break;
		case "B":
			System.out.println("低等级");
			break;
		default:
			System.out.println("别乱输入");
			break;
		}

在这里插入图片描述

2.default是在最前面
switch (level) {
    
    
		default:
			System.out.println("别乱输入");
			break;
		case "A":
			System.out.println("高等级");
			break;
		case "B":
			System.out.println("低等级");
			break;
		
		}

在这里插入图片描述

2.没有break的情况(控制台输入C的情况)

switch (level) {
    
    
		case "A":
			System.out.println("高等级");
		case "B":
			System.out.println("低等级");
		default:
			System.out.println("别乱输入");
		}

在这里插入图片描述

switch (level) {
    
    
		default:
			System.out.println("别乱输入");
		case "A":
			System.out.println("高等级");
		case "B":
			System.out.println("低等级");
		}

在这里插入图片描述

总结

  1. defaut位置是可以多变的,但是推荐是写在最后一种情况。
  2. 在switch中全部没有break的情况下,default的位置摆放,会对结果有影响;有break则没有影响。
  3. 程序是顺序执行,如果输入的情况的执行代码里面没有break,则会执行下一个情况的执行代码,直到break为止。

猜你喜欢

转载自blog.csdn.net/xavvgu/article/details/109092865
Q6