javaswitch不支持

什么是Java的Switch语句

Switch语句是Java语言中的一种流控制语句,它的作用是根据一个表达式的值,从一系列可选的语句中选择一个执行。当需要测试一个变量等于多个值时,通常使用Switch语句,它比一系列的if-else语句执行非常快速和清晰。

Switch语句不支持的类型

虽然Switch语句在一定程度上可以提高代码执行效率,但是它并不是万能的。有些类型的数据是无法用Switch语句进行比较和判断的,比如:浮点数、布尔类型和Long类型。

对于浮点数,Switch语句无法比较它们的相等性。在下面的代码中,会发生错误:

double x = 1.0;
int a = 0;

switch (x) {
   case 1.0:       // error: incompatible types: possible lossy conversion from double to int
      a = 10;
      break;
   case 2.0:
      a = 20;
      break;
}

同样的,对于布尔类型,Switch语句也不支持它们的相等性比较。下面的代码也会导致编译错误:

javaswitch不支持

boolean flag = true;
int a = 0;

switch (flag) {
   case true:      // error: incompatible types: boolean cannot be converted to int
      a = 10;
      break;
   case false:
      a = 20;
      break;
}

最后,在Java中,Long类型与long类型并不是相同的,因此如果你尝试在Switch语句中使用Long类型,那么也会出现编译错误:

Long l = 2L;
int a = 0;
switch (l) {        // error: incompatible types: Long cannot be converted to int

   case 1L:
      a = 10;
      break;
   case 2L:
      a = 20;
      break;
}

使用Enum类型解决Switch语句不支持的问题

为了解决Switch语句无法使用浮点数、布尔类型和Long类型的问题,我们可以使用Java中的枚举类型。

枚举类型可以通过字面常量定义一组常量,并使用Switch语句对它们进行比较。下面是一个使用枚举类型的例子:

enum Day {
   Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}

public class Example {

   public static void main(String[] args) {

      Day day = Day.Saturday;

      switch(day) { 

         case Monday:
            System.out.println("It's Monday.");
            break;
         case Tuesday:
            System.out.println("It's Tuesday.");
            break;
         case Wednesday:
            System.out.println("It's Wednesday.");
            break;
         case Thursday:
            System.out.println("It's Thursday.");
            break;
         case Friday:
            System.out.println("It's Friday.");
            break;
         case Saturday:
            System.out.println("It's Saturday.");
            break;
         case Sunday:
            System.out.println("It's Sunday.");
            break;
      }
   }
}

在上面的例子中,我们定义了一个枚举类型Day,然后使用Switch语句对它进行比较,并打印出相应的字符串。这样,即可避免使用Switch语句无法比较的类型,使代码更加简洁和清晰。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javapeixunwkj.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月25日 上午5:07
下一篇 2023年4月25日 上午5:07

猜你喜欢