输入验证(执行while循环)



我需要确保为提示输入的值在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)

相关内容

  • 没有找到相关文章

最新更新