在使用double的java中大于或等于

时间:2014-06-22 22:37:58

标签: java

我正在尝试使用< = sign来表示变量。说完后:

double ta = input.nextDouble();

我试图通过使用double来限制ta:

double ta = -58>=ta>=41.

我尝试了几种方法,我尝试将布尔值替换为double,并尝试将它们分成2个语句。我正在使用java而且我是初学者。

4 个答案:

答案 0 :(得分:4)

这就是你如何构建它。目前,您正在尝试将布尔值分配给double。

double ta = input.nextDouble();
if (ta <= -58 || ta >= 41) {
  //error, not in range
}

答案 1 :(得分:2)

请注意,<=>=是运算符,它采用两个数值并返回boolean。考虑到这一点,让我们看看你想要做什么:

-58>=ta>=41

因为>=是一个运算符,它也有一个指定的&#34;操作顺序&#34;,类似于你在基本代数类中学到的想法。特别是,上述陈述与

相同
(-58>=ta)>=41

圆括号中的部分结果为boolean。因此,编译器认为您正在尝试将booleanint进行比较,这当然没有任何意义。这就是你收到错误的原因。

现在要解决这个问题,您需要备份并仔细查看您尝试进行的比较的逻辑。最有可能的是,您想要查看输入是否小于-58或大于41.如果其中任何一个为真,那么您知道输入无效并且您想要适当地处理它,可能是再次请求输入

既然我们有单词的条件,你可以看到你需要一个if语句,条件如下:

ta <= -58 || ta >= 41

如果您想根据ta是低于下限还是高于上限,您可能需要将其分为两个不同的案例。

答案 2 :(得分:1)

要将ta限制在范围内,您可以执行此操作:

ta = Math.max(-58, Math.min(41, ta));

答案 3 :(得分:0)

你快到了。语法称为三元

ta = -58 < ta || ta > 41 ? 41d : ta;

您的尝试重新声明了ta变量 - 我从语句中删除了关键字double

您可以将其表达为if,以便于理解

if (-58 < ta || ta > 41)
    ta = 41;