关于java选择结构switch及反编译
在上一篇文章中,我们了解了选择结构中的if else等,本章内容让我们说明一下上一篇文章中的伏笔,switch选择结构🤔
switch多选择结构
- 多选择结构:多选择结构除了else if ,就是我们要介绍的switch case😀
- 分支:switch case 语句判断一个变量与一系列值中的某一个值是否相等,每一个值都是称为一个分支。
- switch语句中可以是 byte 、short、int、char类型,自JavaSE7开始,也支持String字符串类型了,下面会介绍到😎
- switch case使用方式:
switch(expression)
{
case value:
//语句
break; //可以不选
case value:
//语句
break; //可以不选
case value:
//语句
break; //可以不选
//可以有任意的case语句
default: //可以不选
//语句
}
- 我们看到上面代码注释中有可以不选的注释,下面会详细的说明。
- break是结束标志,如果有break就不会向下继续走了,代表终止了switch。
- default和else类似,是在所有判断之后。
- switch多选择结构实例说明
我们声明一个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写出来。
- 我们发现,不写出break,没有终止标志,就会一直向下运行,这种现象就是叫做case穿透。
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、双击文件打开,就可以看到反编译的源码了。
反编译的作用
- 查看源代码:反编译工具可以将字节码文件转换为与原始源代码相似的Java代码。这对于开发人员来说非常有用,因为他们可以查看和理解其他人编写的代码,或者在没有源代码的情况下进行代码分析。
- 调试和修复问题:当遇到问题时,反编译工具可以帮助开发人员快速定位和修复代码中的错误。通过查看反编译后的源代码,开发人员可以更容易地理解代码的逻辑和执行流程,从而更好地进行调试和修复。
- 学习和教学:反编译工具可以帮助初学者学习和理解Java编程语言。通过查看反编译后的源代码,初学者可以更好地理解Java语法和编程规范,并从中学习编程技巧和最佳实践。
- 代码审查和安全性分析:反编译工具可以用于代码审查和安全性分析。通过查看反编译后的源代码,开发人员可以检查代码是否存在潜在的安全漏洞或不良编码实践,并采取相应的措施进行修复和改进。