一、if分支
一、介绍
根据判定的结果(真或假)决定执行某个分支的代码
二、单分支结构
package com.europeansheik.test;
public class test {
public static void main(String[] args) {
int a = 10;
if (a % 2 == 0){
System.out.println("a是偶数");
}
}
}
二、二分支结构
package com.europeansheik.test;
public class test {
public static void main(String[] args) {
int a = 11;
if (a % 2 == 0){
System.out.println("a是偶数");
} else {
System.out.println("a不是偶数");
}
}
}
三、多分支结构
package com.europeansheik.test;
public class test {
public static void main(String[] args) {
int a = 0;
if (a > 0){
System.out.println("a>0");
} else if (a < 0) {
System.out.println("a<0");
} else{
System.out.println("a=0");
}
}
}
二、switch分支
一、执行流程
- 先执行表达式的值,拿着这个值去与case后的值进行匹配
- 匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支
- 如果case后的值都不匹配则执行default代码
二、注意事项
- 表达式类型只能是byte、short、int、char、String,JDK7开始支持String,不支持double、float、long
- case给出的值不允许重复,且只能是字面量,不能是变量
- 不要忘记写break,否则会出现穿透现象
三、实例
package com.europeansheik.test;
public class test {
public static void main(String[] args) {
switch (6 / 3){
case 1:
System.out.println("6 / 3 == 1");
break;
case 2:
System.out.println("6 / 3 == 2");
break;
default:
System.out.println("no");
}
}
}
四、switch的穿透性
如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码(而且不会进行任何匹配),直到遇到break才跳出分支,这就是switch的穿透性。
package com.europeansheik.test;
public class test {
public static void main(String[] args) {
String data = "星期二";
switch (data) {
case "星期一":
System.out.println("星期一");
case "星期二":
System.out.println("星期二");
case "星期三":
System.out.println("星期三");
case "星期四":
System.out.println("星期四");
}
}
}