if elseif else
語法
if (true) {
執行程式碼
} else if (true) {
執行程式碼
} else {
以上都不是才執行
}
if()與else if(),只能接受boolean為「true」,才執行。
boolean
以下程式碼印出結果?
1
2
3
4
5
6
7
8
9
10
boolean flag = true;
if (flag = false) {
System.out.println("flow1");
} else if (flag) {
System.out.println("flow2");
} else if (!flag){
System.out.println("flow3");
} else {
System.out.println("flow4");
}
flow3
可以透過以下方式,在判斷條件的位置,指派值給變數。
此時flag變成false,if(false),就不進入以下的條件判斷。
1
if (flag = false)
!變相反,原本flag是false,!相反後變成true,進入這個if(true)條件判斷。
1
if (!flag)
只要有true,執行完if(true) { 程式碼; }
就離開條件判斷句。
以下程式碼執行結果如何?
1
2
3
4
5
6
7
8
9
10
boolean flag = true;
if (flag == false) {
System.out.println("flow1");
} else if (flag) {
System.out.println("flow2");
} else if (!flag){
System.out.println("flow3");
} else {
System.out.println("flow4");
}
flow2
此時flag仍然是true,會執行以下if(true)條件判斷句。
1
if (flag)
range
使用開區間、閉區間的方式來判斷以下的區間。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int score = 80;
if (score >= 90 && score <= 100) {
// [90, 100] 90 <= score <= 100
System.out.println("優");
} else if (score >= 80 && score < 90) {
// [80, 90) 80 <= score < 90
System.out.println("甲");
} else if (score >= 70 && score < 80){
// [70, 80) 70 <= score < 80
System.out.println("乙");
} else {
// [0, 70) 0 <= score < 70
System.out.println("丙");
}
甲
判斷閏年
不知道為什麼很愛考這題,實在非常非常討厭這題,每次都忘記條件,所以在這邊特別記下來。
符合以下2個條件就是閏年。
- 年份能被4整除,但不能被100整除。
- 能被400整除。
1
2
3
4
5
6
7
int year = 2025;
if ((year % 4 == 0 && year % 100 != 0)
|| year % 400 == 0) {
System.out.println("閏年");
} else {
System.out.println("不是閏年");
}
break, return與else
break
1
2
3
4
5
6
7
8
9
int i = 0;
while (true) {
if (i > 5) {
break;
} else {
i++;
}
}
System.out.println(i);
以上程式碼與以下程式碼是相同的,差別在於下面的程式碼沒有else,但是搭配break離開迴圈、continue直接執行「進入迴圈條件」、return離開方法,只要有符合break、continue、return後面程式碼都不執行,i++放在「break條件之後」就等同於else。
1
2
3
4
5
6
7
8
9
int i = 0;
while (true) {
if (i > 5) {
break;
}
// break條件之後
i++;
}
System.out.println(i);
6
return
1
2
3
4
5
6
7
public void method1(int n) {
if (n == 1) {
return;
} else {
System.out.println("執行這段程式碼");
}
}
以上程式碼與以下程式碼,是相同的,差別在於,下方程式碼沒有else,因為if搭配return,只要有符合break、continue、return後面程式碼都不執行,System.out.println("執行這段程式碼");
放在「return條件之後」就等同於else。
1
2
3
4
5
6
7
public void method1(int n) {
if (n == 1) {
return;
}
// return條件之後
System.out.println("執行這段程式碼");
}