我们很多时候需要去判断一个东西是否可行,然后我们去执行,这样一个过程在程序中用 if 语句来表示
语法:
if(布尔表达式){ //如果布尔表达式为 true 将执行的语句 }
代码如:
import java.util.Scanner; public class IfDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s = scanner.nextLine(); //euqals:判断字符串是否相等 if (s.equals("Hello")){ System.out.println("Hello"); } System.out.println("end"); scanner.close(); } }
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
代码如:
import java.util.Scanner; 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(); }
真是情况下还可能存在更多的选择情况,存在区间多级判断。此时我们需要多选择结构
语法:
if(布尔表达式 1 ){ //如果布尔表达式 1 的值为true执行代码 }else if(布尔表达式 2 ){ //如果布尔表达式 2 的值为true执行代码 }else if(布尔表达式 3 ){ //如果布尔表达式 3 的值为true执行代码 }else { //如果以上布尔表达式都不为true执行代码 }
import java.util.Scanner; public class IfDemo03 { public static void main(String[] args) { //考试分数大于60就是及格,小于60就是不及格 Scanner scanner = new Scanner(System.in); /* if 至多只有一个 else 语句,else 语句在所有的 else if 语句之后。 if 语句可以有若干个 else if 语句,它必须在 else 语句之前。 一旦一个 else if 语句检测为 true 其他 else if 以及 else 都将被跳过执行 */ System.out.println("请输入成绩:"); int score = scanner.nextInt(); if (score>=60) { System.out.println("及格"); //嵌套 if (score == 100) { System.out.println("恭喜满分"); } else if (score >= 90 && score < 100) { System.out.println("A级"); } else if (score >= 80 && score < 90) { System.out.println("B级"); } else if (score >= 70 && score < 80) { System.out.println("C级"); } else if (score >= 60 && score < 70) { System.out.println("D级"); } } else { System.out.println("不及格"); } scanner.close(); } }
if(布尔表达式 1 ){ ////如果布尔表达式 1 的值为 true 执行代码 if(布尔表达式 2 ){ ////如果布尔表达式 2 的值为 true 执行代码 } }
switch(experssion){ case value: //语句 break;//可选 case value: //语句 break;//可选 //你可以有任意数量的case语句 default ://可选 //语句 }
switch 语句中的变量类型可以是:
代码如
package struct; //汉字 public class SwitchDemo02 { public static void main(String[] args) { //JDK 7 表达式结果可字符串 //字符的本质还是数字 //反编译 java---class(字节码文件)---反编译(IDEA) String name = "seveN1foR"; switch (name){ case "FortOfouR": System.out.println("FortOfouR"); break; case "seveN1foR": System.out.println("seveN1foR"); break; } } }
反编译代码
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package struct; public class SwitchDemo02 { public SwitchDemo02() { } public static void main(String[] args) { String name = "seveN1foR"; byte var3 = -1; switch(name.hashCode()) { case -1452256187: if (name.equals("seveN1foR")) { var3 = 1; } break; case -296048694: if (name.equals("FortOfouR")) { var3 = 0; } } switch(var3) { case 0: System.out.println("FortOfouR"); break; case 1: System.out.println("seveN1foR"); } } }
while 循环
do...while 循环
for 循环
在 Java5 中引入了一种主要用于数组的增强型 for 循环。
while(布尔表达式){ //循环内容 }
代码如:
package struct; public class WhileDemo03 { public static void main(String[] args) { int i = 0; int sum = 0; while (i<100){ i++; sum+=i; } System.out.println(sum); } }
do{ //代码语句 }while(布尔表达式)
While 和 do-While 的区别:
代码如:
package struct; public class DoWhileDemo01 { public static void main(String[] args) { int i = 0; int sum = 0; do { sum+=i; i++; }while (i<=100); System.out.println(sum); } }