【问题标题】:Android,Use switch case is used to determine the booleanAndroid,Use switch case 用于判断布尔值
【发布时间】:2014-11-15 14:26:37
【问题描述】:

我正在编写一些程序。我将使用这些程序来告诉连接的情况。 我只会使用if-else,现在我想学习如何使用switch case,但是我发现了switch case 不要使用布尔值,下面是我写的判断公式:

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

【问题讨论】:

  • switch 不允许在 Java 中使用 long、float、double 或 boolean 值!如果变量可以采用两个或多个值,则可以使用枚举。对于布尔值,如果 else 更好。
  • 在@MohammedAli 上扩展,您无法打开任何原语。枚举被用于开关并允许更明确的声明。
  • 枚举最好与 switch 一起使用。另请参阅:stackoverflow.com/questions/5141830/…

标签: java if-statement switch-statement


【解决方案1】:

你想学习开关。
您可以根据自己的目的使用枚举,

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;
}

【讨论】:

    【解决方案2】:

    我不确定您为什么要以这种方式实现它。请参阅 java 中的布尔类型链接 why java takes only true of false

    switch 可以参考这个oracle doc

    如果您喜欢 switch,请创建一个函数,将布尔类型转换为 byte、short、char、int 或 string 类型的静态常量,然后在您的 switch 语句中使用它,但我不建议这样做。

    【讨论】:

      【解决方案3】:

      这不是switch 的用途,Java 不支持。

      if 语句用于基于布尔值控制程序流并且工作完美,那么为什么要尝试使用其他东西呢?如果您想了解switch 语句,您的第一站就是了解它们在哪里,并且没有意义!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 2013-12-26
        • 2016-01-18
        • 2013-05-15
        相关资源
        最近更新 更多