public class ShunXuDemo { public static void main(String[] args) { System.out.println("hello1"); System.out.println("hello2"); System.out.println("hello3"); System.out.println("hello4"); System.out.println("hello5"); } }
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if句来表示
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
public class IfDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); String str = scanner.nextLine(); if (str.equals("Hello")){ System.out.println(str); } System.out.println("END"); scanner.close(); } }
那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发。这样的需求用一个if就搞不定,我们需要两个判断,需要一个双选择结构,所以就有了if-else结构。
语法:
if(布尔表达式){
//如果布尔值的为true
}else{
//如果布尔值为false
}
public class IfDemo02 { public static void main(String[] args) { //考试分数大于60就是及格,小于60分就不及格 Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if (score >= 60){ System.out.println("及格"); }else { System.out.println("不及格"); } scanner.close(); } }
我们发现刚才的代码不合符实际情况,真实的情况还可能存在ABCD,存在区间多级判断。比如90-100就是A, 80-90就是B..等等,在我们生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题!
语法
if(布尔表达式1){ //如果布尔表达式1的值为true执行代码 }else if (布尔表达式2){ //如果布尔表达式2的值为true执行代码 }else if (布尔表达式3){ //如果布尔表达式3的值为true执行代码 }else { //如果以上布尔表达式都不为true执行代码 }
练习
public class IfDemo03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入成绩:"); int score = scanner.nextInt(); if (score == 100){ System.out.println("满分"); }else if (score<100 && score>=90){ System.out.println("A级"); }else if (score<90 && score>=80){ System.out.println("B级"); }else if (score<80 && score>=70){ System.out.println("C级"); }else if (score<70 && score>=60){ System.out.println("D级"); }else if (score<60 && score>=0){ System.out.println("不及格"); }else { System.out.println("成绩不合法"); } scanner.close(); } }
使用嵌套的if...else语句是合法的。也就是说你可以再另一个if或者else if语句中使用if或者else if 语句。你可以像if语句一样嵌套else if...else。
语法
if(布尔表达式1){ ... if(布尔表达式2){ ... } }
练习:
public class SwitchDemo01 { public static void main(String[] args) { //case穿透 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("未知等级"); } } }
JDK7新特性——switch支持字符串
public class SwitchDemo02 { public static void main(String[] args) { String name = "Tian"; //JDK7的新特性,表达式结果可以是字符串!! //字符的本质还是数字 //反编译 java---class(字节码文件)---反编译(IDEA) switch (name){ case "Tian": System.out.println("Tian"); break; case "Test": System.out.println("Test"); break; default: System.out.println("?"); } } }
反编译的内容:
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package com.tian.struct; public class SwitchDemo02 { public SwitchDemo02() { } public static void main(String[] args) { String name = "Tian"; byte var3 = -1; switch(name.hashCode()) { case 2603186: if (name.equals("Test")) { var3 = 1; } break; case 2606466: if (name.equals("Tian")) { var3 = 0; } } switch(var3) { case 0: System.out.println("Tian"); break; case 1: System.out.println("Test"); break; default: System.out.println("?"); } } }