我正在尝试使用< = sign来表示变量。说完后:
double ta = input.nextDouble();
我试图通过使用double来限制ta:
double ta = -58>=ta>=41.
我尝试了几种方法,我尝试将布尔值替换为double,并尝试将它们分成2个语句。我正在使用java而且我是初学者。
答案 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
。因此,编译器认为您正在尝试将boolean
与int
进行比较,这当然没有任何意义。这就是你收到错误的原因。
现在要解决这个问题,您需要备份并仔细查看您尝试进行的比较的逻辑。最有可能的是,您想要查看输入是否小于-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;