java学习笔记--基础篇03(Scanner、顺序结构、选择结构)
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.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 }
浙公网安备 33010602011771号