java学习笔记--基础篇03(Scanner、顺序结构、选择结构)

JAVA流程控制

1、Scanner

  • 可以通过Scanner类来获取用户的输入,java.util.Scanner

  • 基本语法:

1 Scanner s = new Scanner(System.in);
  • 使用方式

 1 package Scanner;
 2  3 import java.util.Scanner;
 4  5 public class Demo01 {
 6     public static void main(String[] args) {
 7         //创建Scanner对象,用于接收用户数据
 8         Scanner scanner = new Scanner(System.in);
 9         System.out.println("请输入信息");
10 11         //判断用户有没有输入信息
12         if(scanner.hasNext()){
13             String str = scanner.next();
14             System.out.println("用户输入的内容为:"+str);
15         }
16         scanner.close();
17     }
18 }

 

2、顺序结构

  • java的基本结构,按顺序一句一句的执行

 

 

 

3、选择结构

3.1 if结构

  • if单选泽

1 if(布尔表达式){
2     //如果表达式为true将执行的语句
3     ...
4 }

 

 

 

 

  • if双选择

1 if(布尔表达式){
2     //如果表达式为true将执行的语句
3     ...
4 }else{
5     //如果表达式为false将执行的语句
6     ...
7 }

 

 

  • if多选择

1 if(布尔表达式1){
2     //如果表达式1为true将执行的语句
3 }else if(布尔表达式2){
4     //如果表达式2为true将执行的语句
5 }else if(布尔表达式3){
6     //如果表达式3为true将执行的语句
7 }else {
8     //如果以上布尔表达式都不为true执行语句
9 }

 

 

 

  • 嵌套if结构

1 if(布尔表达式1){
2     //如果表达式1为true将执行的语句
3     if(布尔表达式2){
4         //如果表达式2为true将执行的语句
5     }
6 }

 

 

 

3.2 switch多选择结构

 1 switch(expressionn){
 2     case vale1: // case 标签必须为字符串常量或字面量,jdk7之后支持String类型
 3         //语句1
 4         break; //可选 
 5     case vale2:
 6         //语句2
 7         break; //可选
 8     ....
 9     default ://可选
10         //语句3
11 }
  • 关于字面量

简单理解就是赋值运算符(=)右边的数值、字符表示的固定的值;

1 string str = “hello world!”; // str 为变量,hello world!为字面量
  • case穿透 (没有遇到break,就一直顺序执行)

 1 public class SwitchDemo {
 2     public static void main(String[] args) {
 3         //case 穿透
 4         char grade = 'A';
 5  6         switch(grade){
 7             case 'A' :
 8                 System.out.println("优秀");
 9             case 'B' :
10                 System.out.println("良好");
11             case 'C' :
12                 System.out.println("及格");
13                 break;
14             case 'D' :
15                 System.out.println("不及格");
16             default :
17                     System.out.println("未知成绩");
18         }
19     }
20 }

输出:优秀 良好 及格

  • switch与if,switch一般做值匹配,if可以做区间判断;switc语句可以用if改写,但是反之不一定。

  • 关于反编译 找到class文件,直接拉到IDEA中,点开查看即可,下面的代码是将grade改为String类型后反编译的结果。

 1 //
 2 // Source code recreated from a .class file by IntelliJ IDEA
 3 // (powered by FernFlower decompiler)
 4 //
 5  6 public class SwitchDemo {
 7     public SwitchDemo() {
 8     }
 9 10     public static void main(String[] args) {
11         String grade = "A";
12         byte var3 = -1;
13         switch(grade.hashCode()) {
14         case 65:
15             if (grade.equals("A")) {
16                 var3 = 0;
17             }
18             break;
19         case 66:
20             if (grade.equals("B")) {
21                 var3 = 1;
22             }
23             break;
24         case 67:
25             if (grade.equals("C")) {
26                 var3 = 2;
27             }
28             break;
29         case 68:
30             if (grade.equals("D")) {
31                 var3 = 3;
32             }
33         }
34 35         switch(var3) {
36         case 0:
37             System.out.println("优秀");
38         case 1:
39             System.out.println("良好");
40         case 2:
41             System.out.println("及格");
42             break;
43         case 3:
44             System.out.println("不及格");
45         default:
46             System.out.println("未知成绩");
47         }
48 49     }
50 }

 

posted @ 2021-01-15 15:48  MXH86  阅读(100)  评论(0)    收藏  举报