在上一篇文章中,我们了解了选择结构中的if else等,本章内容让我们说明一下上一篇文章中的伏笔,switch选择结构
switch(expression)
{
case value:
//语句
break; //可以不选
case value:
//语句
break; //可以不选
case value:
//语句
break; //可以不选
//可以有任意的case语句
default: //可以不选
//语句
}
我们声明一个char类型的变量,然后用switch判断这个变量的级别。
public class Demo
{
public static void main(String[] args)
{
char grade='C';
switch(grade)
{
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
case 'C':
System.out.println("及格");
case 'D':
System.out.println("请再接再励!");
case 'E':
System.out.println("挂科");
default:
System.out.println("未知等级");
}
}
}
我们执行一下代码,我们会发现,C满足了及格的条件,但是并没有只输出了及格,还输出了下面代码中的语句。
及格
请再接再厉!
挂科
未知等级
进程结束......
所以,这里就说明了break的重要性,虽然这个可以不去写出来,程序也可以运行,但是break一定要写出来!我们在以后的工作中,平时的代码书写中,要养成好的习惯,在case的时候,直接把break写出来。
public class Demo
{
public static void main(String[] args)
{
char grade='C';
switch(grade)
{
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("请再接再励!");
break;
case 'E':
System.out.println("挂科");
break;
default:
System.out.println("未知等级");
}
}
}
这样输出的结果,就是只有满足符合的条件的时候,输出的语句。
及格
我们在这里,还会有一些疑问,就是switch和 if 都是选择结构,但是什么时候用哪个选择是最好的呢
if 多用于判断区间,switch 多用于判断具体的值
因为java是源文件,经过编译,生成class文件,在通过解释,给到操作系统平台,我们现在要对class文件进行反编译。
首先我们用刚刚学到的switch,写一段代码。
public class Demo
{
public static void main(String[] args)
{
String name="落满樱花的羊";
switch (name)
{
case "落满樱花":
System.out.println("NO");
break;
case "落满樱花的":
System.out.println("NO");
break;
case "落满樱花的羊":
System.out.println("Yes");
break;
default:
System.out.println("内容错误");
}
}
}
我们用的工具是Idea,所以,下面的反编译演示也是用Idea进行演示的,当然也有很多其他的反编译工具
1、首先,我们先编译运行一下这段代码,让它去生成class文件。
输出的结果为YES,已经编译好了,我们就可以去找它的class文件了
2、点击文件,找到项目结构,打开。
3、复制路径在 我的电脑 中输入。
4、进入文件夹后,我们可以看到production文件夹,点击去,可以看到项目名字(我的项目名字叫One),根据自己建立的包,找到对应的类文件的编译后的class文件。
5、找到后,我们在Idea项目目录中,找到刚刚的这个类,然后右键,选择打开于资源管理器。
6、打开以后,我们将刚刚的class文件,复制粘贴过去,像这样。
7、我们再打开idea的时候,就会发现刚刚的包中,多了一个不一样图标的文件,这个就是class文件。
8、双击文件打开,就可以看到反编译的源码了。