2014-11-15 35 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声明,您的第一个停靠港就是了解它们的位置,而且没有意义!