输入验证(while while循环)

时间:2013-04-06 10:34:47

标签: java

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

3 个答案:

答案 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)