在深入學習控制結構前,必須先了解塊的作用。
定義:由多條Java語句組成的語句,並用一對大括號括起來。
作用:區塊確定了變數的作用域,一個區塊可以嵌套在另一個區塊上。
實例:
package decom1; public class cuowu { public static void main(String[] args) { //第二个块嵌套在第一个块里面。 byte i = 12; //变量i只在第二个块区域内有作用包括嵌套里面的块。 { //第三个块嵌套在第二个块里面同时也在第一个块里面。 int a = 3; //变量a只在所在的块起到作用。 System.out.println(a); } //写在main(程序执行的入口)里面的代码块,就称为局部代码块。 //局部代码的作用:能够让变量更早的在内存中消失,节省内存空间。 System.out.println(i); } }
不能在嵌套的兩個區塊中宣告同名的變數。
實例:
package decom1; public class cuowu { public static void main(String[] args) { byte i = 12; { int i = 3; //报错:Duplicate local variable i } System.out.println(i); } }
條件語句有三種格式,下面我來解密哪三種格式。
if(條件式) { 語句體; }
Java中條件語句的表現:
if(condition) statement
這裡的條件必須用小括號括起來。
條件表達式最終的結果只能是boolean類型,要嘛是true,要嘛是false。
流程:
1.如果程式執行到if語句的時候,會去看條件表達式的結果是true還是false。
2.如果是true,就會進入if中,執行裡面的語句體內容。
3.如果是false,就不會進入if中,就不會執行到裡面的語句體內容。
package com; public class liu { public static void main(String[] args) { int i = 1; int j = 2; if(i > j) { System.out.println(i); } System.out.println(j); //由于i>j不成立,所以不执行if里面的语句,直接跳过执行外面的语句。 } }
if(條件式){ 語句體; }else{ 語句體; }
語句表現:
if(condition) statement1 else statement2
#執行流程:
1.如果程式執行到if語句的時候,會去看條件表達式的結果是true還是false。
2.如果是true,就會進入if中,執行裡面的語句體內容。
3.如果是false,就不會進入if中,會進入到else中,執行裡面的語句體。
實例:
package com; public class liu { public static void main(String[] args) { //获取两个数的较大值 int i = 1; int j = 2; int max = 0; if(i > j) { max = i; //把i赋值给max } else { max = j; //把j赋值给max } System.out.println(max); //因为i>j条件为假,所以执行else里面的语句,所以max得到的数值为2。 } }
if(條件式){ 語句體; }else if{ 語句體; }…else {語句體;}
語句表達形式:
if…else if…
執行流程:
1.如果程式執行到if語句的時候,會去看條件表達式的結果是true還是false。
2.如果為true,就會執行if中的語句體內容,其他的語句體不會執行。
3.如果為false,就會繼續往下走,看else if的條件式的結果是true還是false。
4.如果是true,就進入elseif中,執行裡面的語句體內容。
5.如果是false,就繼續向下走…
6.如果if和所有的elseif中的條件表達式都為false,就會執行else中的語句體內容。
實例:
package com; public class liu { public static void main(String[] args) int a = 0; int i = 7; if(i > 8) { a = 1; } else if(i > 7) { a = 2; } else if(i > 6) { a = 3; } else { a = 4; } System.out.println(a); } }
在處理多個選項時if條件語句顯著有些笨拙,這個時候有新的玩法更何樂而不為呢?下面我來介紹switch語句。
結構放在實例講,下面講一下執行流程:
1.當程式執行到switch的時候,會進入到switch,會找第一個case進行匹配,如果匹配成功,就進入case中執行。
2.裡面的語句體內容和break。如果沒有配對成功,會繼續往下走,找第二個case繼續配對… …。
3.如果所有的case都不匹配,最後會執行default中的語句體內容。
實例:
package com; public class liu { public static void main(String[] args) { int i = 3; switch(i) { case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; case 3: System.out.println("3"); //i=3符合case 3所以就执行case里面的命令,其余语句则不管。 break; default: System.out.println("3"); break; } } }
case標籤:
#類型為char、byte、short或int的常數表達式。
枚舉常數。
從Java 7 開始,case標籤可以是字串字面量。
字元常數實例:
String input.... switch (input.tolowerCase()) { case "yes": ... break; ... }
警告:如果case分支語句結尾沒有break語句,那麼就會接著執行下一個case分支語句。
如果你容易忘記這個茬,可以在前面加上這個語句,這樣一來如果case後面少了一個break,在編譯的時候會提示錯誤。
javac -Xlint:fallthrough Test.java
#switch結束標誌:
##1.break##2.遇到結尾}
以上是Java區塊作用域、條件語句及switch語句怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!