我需要确保为提示输入的值在100,000到900,000之间,这不起作用,有什么想法吗?(顺便说一句,我只是个初学者)
double advertCost;
do {
System.out.println("Please enter the advertising cost: ");
advertCost = input.nextDouble();
} while (advertCost =< 100000 || advertCost => 900000);
我得到的错误:记号"<"有语法错误,请删除此记号对于参数类型int, boolean,运算符||没有定义标记"="的语法错误,删除这个标记
你的问题在你的语法:
while (advertCost =< 100000 || advertCost => 900000);
在Java中,"小于或等于"操作符就像你说的那样。小于或等于。等于或小于。同样的道理也适用于你的大于。它应该看起来像这样:
while (advertCost >= 100000 || advertCost <= 900000);
还有,你的操作符用错了。你想要advertCost
大于100000小于900000但是你的运算符暗示小于100000大于900000。
顺便说一下你的错误
通常这类问题可以通过错误消息来理解。我知道它们看起来很神秘,但如果你学会了解读它们,你就不需要我们来解释语法错误了。
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刚刚解析了您的代码,它正在遍历每个令牌。这是它到达的第一个无效令牌,因此生成此消息。然而,如果你删除了它,你仍然会有一个无效的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继续解析,它也找到了你的"=>"。和前面一样,它会注意到无效字符,并建议您删除它。如果您确实删除了"=",那么对于If语句的这一部分,您实际上拥有了有效的语法。
总结
下次遇到这种类型的错误时,请尝试分解消息。它告诉你哪个字符是错的,<
和=
。它甚至会告诉你该怎么做。显然,它只能猜测,所以要由您来确定您想要什么以及如何使运行时环境理解它!
比较操作符是<=
和>=
,而不是=<
和=>
。
(advertCost <= 100000 || advertCost >= 900000)