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) { 程式碼; }就離開條件判斷句。
img

以下程式碼執行結果如何?

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個條件就是閏年。

  1. 年份能被4整除,但不能被100整除。
  2. 能被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("執行這段程式碼");
  }

results matching ""

    No results matching ""