学习java的过程中,遇到if如果不采用else和采用else的运行结果不一样,记录一下。源代码如下:
public class MyAppFile{
public static void main(String[] args){
System.out.println("I Rule");
System.out.println("The World");
int x = 3;
String name = "Dirk ";
x = x * 17;
System.out.println("x first is " + x);
double d = Math.random();
System.out.println(name + d);
while(x > 12) {
x = x - 1;
System.out.println(" x is " + x);
if (x == 10){
System.out.print("x must be 10 ");
} else {
System.out.print("x isn't 10 ");
}
if ((x > 15)&&(name.equals("Dirk "))){
System.out.print("Gently ");
}
System.out.print("this line runs no matter what ");
}
for (int y = 0; y < 10; y = y + 1) {
System.out.println("y is now " + y);
}
}
}
运行时发现第2个if判断中总是会打印出this line runs no matter what,就特别好奇。
在第二个if中添加一个else试下:
if ((x > 15)&&(name.equals("Dirk "))){
System.out.print("Gently ");
} else {
System.out.print("this line runs no matter what ");
}
再次运行之后,查看结果,仅有不满足条件(>12且<15)才会打印出来this line runs no matter what:
if条件内写了指令,if外如果不写else,就会被当成顺序指令执行。满足条件和不满足条件的都会执行。加了else{},在花括号里写指令,表示不满足if条件执行else内指令。所以两次结果不一样。