您的问题在于您的语法:
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继续解析,也找到了你的“=>”。和以前一样,它记录了无效字符并建议您将其删除。如果您确实删除了“=”,那么您实际上拥有这部分 If 语句的有效语法。
概括
下次遇到此类错误时,只需尝试分解消息即可。它会告诉您哪些字符是错误的,<
并且=
. 它甚至会告诉您如何尝试使用它们。显然它只能猜测,所以你要弄清楚你想要什么以及如何让运行时环境理解这一点!