switch判断语句

一、switch判断语句基本内容

1.switch后面使用的表达式可以是那些?

switch表达式后面的数据类型只能是(jdk 4):byte,short,char,int四种整形类型;

jdk 5:byte short int char enum(枚举)

jdk 7: byte short int char enum(枚举),String 六种类型

2.enum(枚举):一般枚举的格式是,枚举类.枚举类型,使用 switch 的要义在于,case 枚举类型,而不是 case 枚举类.枚举类型;总之枚举就是将你输入的字符串转换为一组数据存在相应的变量中。

3.String(字符串型):用equlas进行写入字符串内容,如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;equals 重写:值内容 , equals不重写:地址

所有没有重写equals()方法的类中,调用equals()方法其实和使用==的效果一样,也是比较的地址值,然而,Java提供的所有类中,绝大多数类都重写了equals()方法,equals方法进行了重写则是用来比较指向的对象所存储的内容是否相等。

4.switch中可有有null(空值)吗?

       在switch语句中,表达式的值不能是null,否则会在运行时抛出NullPointerException。在case子句中也不能使用null,否则会出现编译错误。

5.case后的数值能重复吗?

      case后的数值是不可以重复的,对于字符串类型的也一样,但是字符串中可以包含Unicode转义字符。重复值的检查是在Java编译器对Java源代码进行相关的词法转换之后才进行的。也就是说,有些case字句的值虽然在源代码中看起来是不同的,但是经词法转换之后是一样的,就会在成编译错误。比如:“男”和“\u7537”就是一个意思。

二、案例:

  1. 使用switch语句改写下列if语句:

  int a = 3;

   int x = 100;

    if(a==1)			
							
       x+=5;

   else if(a==2)

       x+=10;

    else if(a==3)

       x+=16;

    else  
        
	 x+=34;

替换后的代码:

switch(a){
			case 1:
				x+=5;
				break;
			case 2:
				x+=10;
				break;
			case 3:
				x+=16;
				break;
			default:
				x+=34;
		}

完整代码:

public class lianxi_3_2{
	public static void main(String[] args){
		int a=3;
		int x=100;
		switch(a){
			case 1:
				x+=5;
				break;
			case 2:
				x+=10;
				break;
			case 3:
				x+=16;
				break;
			default:
				x+=34;
		}
		System.out.println("x="+x);
	}
}

运行结果:

switch判断语句_第1张图片

 

二、使用 switch case 语句也有以下几点需要注意。

  1. case 里面必须跟 break,不然程序会一个个 case 执行下去,直到最后一个 break 的 case 或者 default 出现。

  2. case 条件里面只能是常量或者字面常量。

  3. default 语句可有可无,最多只能有一个。

你可能感兴趣的:(java,开发语言)