0

我被要求获取用户输入并忽略不在 -30 和 40 范围内的值。要跳过无效数字,我使用“继续”语句。我在谷歌上搜索了消息来源说继续/中断是不好的做法。IDE 还会发出“不必要的继续”警告。下面的代码是解决这个问题的好习惯,我应该覆盖警告还是解决它?

我的代码如下所示:

public class Temperatures 
{

@SuppressWarnings("UnnecessaryContinue")
public static void main(String[] args) {

    Scanner reader = new Scanner(System.in);
    // Write your code here. 
    while(true)
    {
        //ask user for input
        double userInput = Double.parseDouble(reader.nextLine());

        //makes sure temperature is within range, if it isn't ignores value and moves on
        if (userInput < -30.0 || userInput > 40.0)
        {
            continue;
        }
        //adds value to graph
        else
        {
            Graph.addNumber(userInput);
        }
     }
}
4

3 回答 3

2

IDE 可能会显示警告,因为如果您删除 continue 您的代码将完全相同。想想看。

于 2015-03-26T04:49:38.563 回答
2

IDE 还会发出“不必要的继续”警告。

这是一个不必要的continue. 为什么?

如果你的if陈述为真,else将不会被执行。如果if条件为假,else将被执行。因此,这里不需要 a continue

continue应该在以下情况下使用:

while(true)
    {
        double userInput = Double.parseDouble(reader.nextLine());
        if (userInput < -30.0 || userInput > 40.0)
        {
            continue;
        }
        Graph.addNumber(userInput);
     }

没有else语句,因此现在您必须使用 acontinue来跳过当前迭代的进一步执行。

于 2015-03-26T04:54:26.100 回答
1

您不需要在您的情况下使用 continue 。改用这个:

if( userInput >= -30 && userInput <= 40){
    Graph.addNumber(userInput);
}
于 2015-03-26T04:51:13.437 回答