顺序结构
- Java的基本结构就是顺序结构,从上到下依次执行。
- 顺序结构是最简单的算法结构。
- 任何一个算法都离不开的一种基本算法结构(顺序结构)。
选择结构
1. if单选择结构
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//输入字符串
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
//nextLine用于接收输入,可接收空格
String s = scanner.nextLine();
//equals判断字符串是否相等
if (s.equals("Hello")){
System.out.println("内容是Hello");
}
scanner.close();
}
}
2. if双选择结构
// if...else...
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//输入字符串
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
//nextDouble用于接收浮点数
double s = scanner.nextDouble();
if (s < 60){
System.out.println("不合格");
}else{
System.out.println("合格");
}
scanner.close();
}
}
3. if多选择结构
//if...elseif...elseif.......else
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//输入字符串
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
//nextLine用于接收输入,可接收空格
double s = scanner.nextDouble();
if (s >= 0 && s < 60) {
System.out.println("不合格");
} else if (s >= 90 && s <= 100) {
System.out.println("优秀");
} else if (s >= 60 && s < 90) {
System.out.println("合格");
} else {
System.out.println("请输入合理的值");
}
scanner.close();
}
}
4. 嵌套的if结构
// if...if
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//输入字符串
Scanner scanner = new Scanner(System.in);
System.out.println("请输入分数:");
//nextDouble用于接收浮点数
double s = scanner.nextDouble();
if (s < 60){
if (s < 0){
System.out.println("请输入正确的值");
}else{
System.out.println("不合格");
}
}else{
System.out.println("合格");
}
scanner.close();
}
}
5. switch多选择结构
- 多选择结构实现方式是 switch case语句
- switch case语句判断一个变量与一系列值找那个某个值是否相等,每个值称为一个分支。
- switch中的变量可以是:
- byte、short、int或者char。
- 从Java SE 7开始 switch 支持字符串String类型
- 同时 case 标签必须为字符串常量或者字面量。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//输入字符串
Scanner scanner = new Scanner(System.in);
System.out.println("请输入等级:");
String s = scanner.nextLine();
switch(s){
case "A"://匹配A
System.out.println("优秀");
break;//退出switch
case "B"://匹配B
System.out.println("良");
//case会穿透,没有break,会接着往下走
case "C":
System.out.println("合格");
break;
default:
//全部没有匹配到,执行deauft
System.out.println("请输入大写A、B、C");
}
scanner.close();
}
}
- 反编译
- .java-->.class(字节码文件)
- 用idea反编译
- 打开project structure
- 找到Project compiler output中的路径并打开
- 用文本编辑器打开最后的.class文件(展示乱码)
- 将.class文件复制到项目目录底下,再次用idea查看
- 由此可见:
switch中字符串比较的本质还是数字比较,每一个字符串都有其特定的hash值