2014-11-15 37 views
0

我在寫一些程序。我要用這個程序來告訴連接的情況。 我只會用的if-else,現在我想學習如何使用開關的情況下,但我發現開關的情況下 不使用布爾,下面是我寫的判斷公式:Android,使用開關的情況下,用於確定布爾值

if(isConnected) { 
 
    //if connection established \t 
 
    btnwifi.setText("Connection"); 
 
} else { \t 
 
    btnwifi.setText("Unconnected"); 
 
}

+1

交換機不允許長,浮動,雙或布爾值在Java中!如果一個變量可以帶兩個或更多值,則可以使用枚舉。對於布爾值,如果else更好。 –

+1

在@MohammedAli上擴展時,您無法切換任何基元。枚舉被用於切換並允許更明確的聲明。 – zgc7009

+0

枚舉最適合與開關一起使用。也看到這個:http://stackoverflow.com/questions/5141830/switch-expression-cant-be-float-double-or-boolean –

回答

0

你想學開關。
你可以用你的目的枚舉,

public enum BtnWifi { // you can create new enum java file for this 
CONNECTED, NOT_CONNECTED 
} 
//.... Setting value for enum in your code 
BtnWifi btnWifi; 
if(isConnected) { 
//if connection established 
    btnWifi = BtnWifi.CONNECTED; 
} else {  
    btnWifi = BtnWifi.NOT_CONNECTED; 
} 
// No switch to use it... 
switch(btnWifi) { 
    case CONNECTED: 
    //code for connected... 
    break; 
    case NOT_CONNECTED: 
    //code for Not connected... 
    break; 
} 
0

我不確定你爲什麼要這樣實現它。見鏈接,布爾類型的Java why java takes only true of false

對於交換機,可以參照本oracle doc

,如果你是這樣進開關,創造出一個boolean類型轉換成字節,短,焦炭的靜態常量的功能, int或字符串類型,然後在你的switch語句中使用它,儘管我不會推薦這樣做。

0

這不是switch的目的,在Java中不受支持。

if語句用於控制基於布爾值的程序流程,並且完美地工作,所以爲什麼要嘗試使用別的東西?如果您想了解switch聲明,您的第一個停靠港就是了解它們的位置,而且沒有意義!