我需要确保为提示输入的值介于100,000到900,000之间,这不起作用,有什么想法吗? (我只是初学者)
double advertCost;
do {
System.out.println("Please enter the advertising cost: ");
advertCost = input.nextDouble();
} while (advertCost =< 100000 || advertCost => 900000);
我得到的错误: 令牌“&lt;”上的语法错误,删除此令牌 运营商||未定义参数类型int,boolean 令牌“=”上的语法错误,删除此令牌
答案 0 :(得分:5)
您的问题在于语法:
while (advertCost =< 100000 || advertCost => 900000);
在Java中,“小于或等于”运算符就像你说的那样。少于或等于。你已经等于或等于。对你而言也是如此。它应该是这样的:
while (advertCost >= 100000 || advertCost <= 900000);
此外,您的操作员操作错误。您希望advertCost
大于100000且小于900000,但您的运算符意味着小于100,000且大于900,0000。
关于您的错误
错误消息通常可以理解这些问题。我知道它们看起来很神秘,但是如果你学会破译它们,那么在语法错误方面你真的不需要我们。
Syntax error on token "<", delete this token The operator || is undefined for the argument type(s) int, boolean Syntax error on token "=", delete this token
让我们把它切成它的部分:
第一部分
消息的:Syntax error on token "<", delete this token
好吧,JRE刚刚解析了你的代码,它正在遍历每个token。这是它到达的第一个无效的标记,因此生成此消息。但是,如果你删除它,你仍然会有一个无效的if语句,所以让我们继续阅读。
第二部分。
消息的:The operator || is undefined for the argument type(s) int, boolean
嗯,找不到可检测的操作符,因此JRE必须假设那里没有一个。当它解析了部分IF语句时,它被发现:
if(a number || something else).
此时它知道||
运算符仅适用于两个布尔值,因此会引发另一个错误。这样做是因为它已经知道代码会失败;它不需要检查另一方。
最后一部分
消息的:Syntax error on token "=", delete this token
因此JRE继续解析,并且它也找到了你的“=&gt;”。和以前一样,它注意到无效字符并建议你删除它。如果确实删除了“=”,那么实际上对于If语句的这一部分你有正确的语法。
摘要
下次您遇到此类错误时,只需尝试细分该消息即可。它会告诉您哪些字符有误,<
和=
。它甚至会告诉你如何尝试使用它们。显然它只能猜测,所以你需要弄清楚你想要什么,以及如何使运行时环境理解它!
答案 1 :(得分:1)
比较运算符为<=
和>=
,而不是=<
和=>
。
答案 2 :(得分:0)
(advertCost <= 100000 || advertCost >= 900000)