0

ユーザー入力を取得し、-30 と 40 の範囲外の値を無視するように求められました。無効な数値をスキップするには、'continue' ステートメントを使用します。継続/中断は悪い習慣であると言っている情報源をグーグルで検索しました。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 が警告を表示している可能性があります。考えてみてください。

于 2015-03-26T04:49:38.563 に答える
2

IDE は、「不要な続行」の警告もスローしています。

不要continueです。なんで?

あなたのifステートメントが真になると、else実行されません。if条件が falseの場合、else実行されます。したがって、continuehere は必要ありません。

continue次の場合に使用する必要がありました。

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

elseステートメントがないため、 a を使用しcontinueて、現在の反復のそれ以上の実行をスキップする必要があります。

于 2015-03-26T04:54:26.100 に答える
1

この場合、continue を使用する必要はありません。代わりにこれを使用してください:

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