Java分支結構
我們在前麵已經詳細的介紹過了什麼是循環結構,那麼在java中還有什麼些什麼結構呢?
現在我們來比較詳細的探討一下下一種java結構---分支結構:
Java的分支結構有兩種:
1、 if語句
2、 switch語句。
首先我們介紹一下什麼是分支結構:
分支結構就是在順序結構的執行過程中岔出一個特殊的分支去執行,該岔出的分支是為了對一些內容進行判斷和選擇。
接著,什麼是if語句:
If代表的是如果,一幫情況下和else連用。else代表的是 否則 。其基本表達式如下所示:
If(布爾表達式){
結果為真則執行測出的代碼
}else{
結果為假,則執行這裏的代碼
}
看一個例子:
class BranchToIf{
public static void main(String[] args) {
/**
* 下麵的分支語句要做的事情是:
* 首先,運算 12==10 得到一個布爾值,如果 12 == 10 為真 ,這進入代碼 1 否則進入代碼 2
*/
if(12==10){
//代碼 1
System.out.println("12等於10");
}else {
//代碼 2
System.out.println("12不等於10");//實際輸出。。因為我侄兒子都知道12不等與10
}
}
}```
當然,if語句的用法不止於此:
If(布爾表達式A){
如果表達式A為真則執行這裏。否則進入下一個else if的布爾表達式B的運算
}else if (布爾表達式B){
如果布爾表達式B為真則執行這裏,否則進入下一個不二表達式C的運算
}else if(布爾表達式C){
··如果布爾表達式B為真則執行這裏,否則執行else下麵的代碼
}else{
如過ABC都不為真則執行這裏。
}
代碼如下:
class BranchToElseIf{
public static void main(String[] args) {
if(10==11){//顯然不等,進入下一個else if
System.out.println("10等於11");
}else if (10==12){//顯然不等,進入else if
System.out.println("10等於12");
}else if (10==13){//顯然被不等 進入 else
System.out.println("10等於13");
}else {
System.out.println("10等於10");//真是的執行代碼,因為什麼你知道的。
}
}
}
作為一個合格的開發者,你需要帶自己所寫的代碼負責。所以,盡量不要去if else if 裏麵再接著寫判斷,如果你非寫不可,最多不要超過兩層,你也許可以對非值進行理解,然後盡量在非此次值做邏輯。
比如說:
```javascript
class BranchToIf2 {
public static void main(String[] args) {
if (10 == 20) {
System.out.println("10等於20");
} else {
System.out.println("10不等於20");
}
//可以改寫為:其結果是一樣的.
if (10 != 20) {
System.out.println("10不等於20");
return;
}
System.out.println("10等於20");
}
}
下麵我們介紹什麼是switch:
Switch語句判斷的是,一個值和一堆值的映射關係,說簡單點,就是從一值中找出你想要的哪一個值。
其語法如下:
Switch:一個你需要比對的值{
case value:
你要做的代碼
一般要有一個break:
case value2 :
你需要執行的代碼
一般要有一個break:
default:
如果都沒有和你期望的值映射成功,則執行這裏,這裏不需要驚喜break。
}
代碼如下:
class BranchToSwitch {
public static void main(String[] args) {
switchMetoh("Aatrox");
switchMetoh2("Aatrox");
}
static void switchMetoh(String i) {
switch (i) {
case "Aatrox":
System.out.println("暗夜劍魔");//執行這裏
break;//結束
case "Ahri":
System.out.println("九尾妖狐");
break;
default:
System.out.println("沒有匹配值");
}
}
static void switchMetoh2(String i) {
switch (i) {
case "Aatrox":
System.out.println("暗夜劍魔");//執行這裏
//沒有break則會穿透!所有case代碼都會執行,直到default
case "Ahri":
System.out.println("九尾妖狐");
default:
System.out.println("沒有匹配值");
}
// 執行結果:
/*
* 暗夜劍魔
* 九尾妖狐
* 沒有匹配值
* */
}
}
對於switch語句需要注意的是,每一個case下麵的代碼必須要跟break,否則就會形成穿透現象,直到遇到下一個break或則defaut.
最後更新:2017-05-25 15:01:27