浮动不使用开关

时间:2017-08-15 09:06:27

标签: java switch-statement

我的代码有问题,我每次单击鼠标时都会尝试使我的脚本产生不同,但是我的开关出错了,因为我每次都使用随机选择不同的数字。 每次我尝试运行脚本时都会收到此错误,但我找不到错误。

move_ball()

变量的一些标签和名称是丹麦语,因为我是丹麦语。

    Cannot switch on a value of type float. Only convertible int values, strings or enum variables are permitted

2 个答案:

答案 0 :(得分:1)

正如评论所示:预期的行为。您无法在 float 类型的变量上切换

回答是:无论如何这都是个坏主意。请记住,浮点数字在设计上是“不准确的”(例如,请参阅here)。鉴于switch具有完全匹配 n 不同情况的概念。但对于浮点数而言,这只是技术上

从这个意义上说:退一步,然后将该变量的类型更改为int。它应该是int skift - 不是浮动

然后你问:“但我如何获得随机 int 号码?” - 见here

答案 1 :(得分:0)

switch case 语句仅适用于:

  • 原语:字节字符 int ;
  • 基元的类包装器:字符,字节,短整数
  • 枚举字符串(自JDK 7 +起)

    您可以使用浮动开关,最多可达到您要查找的精度数字:

  • skift 乘以10..0以根据需要移动点
  • 然后使用 Math.round(skift)来获取整数

或使用其他随机方法,如 GhostCat 表示