-2

我需要确保为提示输入的值在 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 标记“=”上的语法错误,删除此标记

4

3 回答 3

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继续解析,也找到了你的“=>”。和以前一样,它记录了无效字符并建议您将其删除。如果您确实删除了“=”,那么您实际上拥有这部分 If 语句的有效语法。

概括

下次遇到此类错误时,只需尝试分解消息即可。它会告诉您哪些字符是错误的,<并且=. 它甚至会告诉您如何尝试使用它们。显然它只能猜测,所以你要弄清楚你想要什么以及如何让运行时环境理解这一点!

于 2013-04-06T10:36:51.387 回答
1

比较运算符是<=and >=,not =<and =>

于 2013-04-06T10:36:15.133 回答
0
(advertCost <= 100000 || advertCost >= 900000)
于 2013-04-06T10:36:54.217 回答