java 分支结构
if , if else , if elseif if
1 /** 2 文件路径:G:\JavaByHands\if-else 3 文件名称:IfElseT.java 4 编写时间:2016/6/5 5 作 者:郑晨辉 6 编写说明:if if-else if-ifelse else 代码示例 7 */ 8 public class IfElseT { 9 public static void main(String[] args) { 10 System.out.println("--程序开始--"); 11 //设定传入条件 12 int i = 3; 13 //单if 14 if(i < 4) { 15 System.out.println("3<4"); 16 } 17 if(i > 4) { 18 System.out.println("3>4"); 19 } 20 21 System.out.println("---分割线---"); 22 23 //if-else 24 if(i < 4) { 25 System.out.println("3<4"); 26 } else { 27 System.out.println("4<3"); 28 } 29 30 System.out.println("---分割线---"); 31 32 //if if else else 33 if(i < 3) { 34 System.out.println("3<3"); 35 } else if (i > 3) { 36 System.out.println("3>3"); 37 } else { 38 System.out.println("3=3"); 39 } 40 41 System.out.println("--程序结束--"); 42 } 43 }
结果:
注意:if else if 中的else 的条件默认对上一个if条件取反
代码示例:
/** 文件路径:G:\JavaByHands\if-else文件名称:IfElseTest.java 编写时间:2016/6/5 作 者:郑晨辉 编写说明:ifelse中的else的条件默认对上一个if的条件取反 */ public class IfElseTest { public static void main(String[] args) { System.out.println("--程序开始--"); //设置条件 int i = 99; //第一种 if (i > 60) { System.out.println("及格"); } else if(i > 80) { System.out.println("普通"); } else if(i > 95) { System.out.println("优秀"); } else if(i == 100) { System.out.println("满分"); } System.out.println("---分割线---"); //int i = 99; //第二种 if (i == 100) { System.out.println("满分"); } else if(i > 95) { System.out.println("优秀"); } else if(i > 80) { System.out.println("普通"); } else if(i > 60) { System.out.println("及格"); } System.out.println("--程序结束--"); } }
结果:两次结果并不相同
原因就是else 的条件默认对上一个if条件取反:
int i = 99; //第一种 if (i > 60) { // i > 60 System.out.println("及格"); } else if(i > 80) { // i > 80 && !(i > 60) System.out.println("普通"); } else if(i > 95) { // i > 95 && !(i > 80 && !(i > 60)) System.out.println("优秀"); } else if(i == 100) { // i == 100 && !(i > 95 && !(i > 80 && !(i > 60))) System.out.println("满分"); } System.out.println("---分割线---"); //int i = 99; //第二种 if (i == 100) { // i == 100 System.out.println("满分"); } else if(i > 95) { //i > 95 && !(i == 100) System.out.println("优秀"); } else if(i > 80) { // i > 80 && !(i > 95 && !(i == 100)) System.out.println("普通"); } else if(i > 60) { // i > 60 && !(i > 80 && !(i > 95 && !(i == 100))) System.out.println("及格"); }
很明显,如果按照第一种运行,后面的条件根本就不会存在...也就永远都不会运行...
这在实际运用中也是需要注意的,逻辑问题~~
时间: 2024-10-05 15:54:52