2017-12-26 11 views
0

ユーザが非数字入力を入力するたびにループするようにしたい場合 ユーザが(p)を入力するとコードに "please有効な番号を入力して「最初の番号を入力してください」while(*/that変数がdoubleと等しくない)ループを書く

ユーザーが最初の番号に数字を入力したが、その番号に数字以外の番号を入力した場合、コードでユーザーに「enter秒番号は「最初の数字を入力しない」

public static void main(String[] args) { 

     double s1 = 0; 
     double s2 = 0; 

     while (true) { 

      try { 
       s1 = Double.valueOf(getinput("enter first number")); 
       s2 = Double.valueOf(getinput("enter sec number")); 
      } catch (Exception e) { 
       System.out.println("please enter a Valid number"); 

      } 

      continue; 
     } 
+0

あなたの質問は何ですか? –

+1

2つのループを使用して1つ目の番号を取得し、もう1つは2番目の番号を取得するために使用します –

+1

ユーザーが有効な入力を入力するまで返さない関数 'double getDouble(String prompt)'を書くことができます。その後、2x –

答えて

2

2つのループが必要です。

次の2つのループ、それぞれの番号のいずれかを使用し、あなたのダブルがnullでない場合、さらに行くことができ
double s1 = 0; 
double s2 = 0; 

boolean s1Valid = false; 
boolean s2Valid = false; 

while (!s1Valid) { 
    try { 
     s1 = Double.valueOf(getinput("enter first number")); 
     s1Valid = true; 
    } catch (NumberFormatException e) { // you should declare exceptions as specifically as possible 
     System.out.println("please enter a Valid number"); 
    } 
} 

while (!s2Valid) { 
    try { 
     s2 = Double.valueOf(getinput("enter second number")); 
     s2Valid = true; 
    } catch (NumberFormatException e) { 
     System.out.println("please enter a Valid number"); 
    } 
} 
2

もう

public static void main(String[] args) { 

    Double s1 = null; 
    Double s2 = null; 

    while (true) { 

     while(s1 == null){ 
      try { 
      s1 = Double.valueOf(getinput("enter first number")); 
      } catch (Exception e) { 
      System.out.println("please enter a Valid number"); 
      } 
     } 

     while(s2 == null){ 
      try { 
      s2 = Double.valueOf(getinput("enter first number")); 
      } catch (Exception e) { 
      System.out.println("please enter a Valid number"); 
      } 
     } 

     continue; 
    } 
+1

を呼び出します。ループブロックの最後に 'continue;'は不要です。 –

関連する問題