2011-08-07 4 views
1

ユーザーはY/Nも入力しなかったとき、エラーを返して質問Do you want to try again (Y/N)?に再度質問しますか?Y/Nも入力しないときにエラーを返します

import java.io.*; 

public class Num10 { 
    public static void main(String[] args){ 
     String in=""; 
     int start=0, end=0, step=0; 

     BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 

     do{ 
      try{ 
       System.out.print("Input START value = "); 
       in=input.readLine(); 
       start=Integer.parseInt(in); 
       System.out.print("Input END value = "); 
       in=input.readLine(); 
       end=Integer.parseInt(in); 
       System.out.print("Input STEP value = "); 
       in=input.readLine(); 
       step=Integer.parseInt(in); 
      }catch(IOException e){ 
       System.out.println("Error!"); 
      } 

      if(start>=end){ 
       System.out.println("The starting number should be lesser than the ending number"); 
       System.exit(0); 
      }else 
      if(step<=0){ 
       System.out.println("The step number should always be greater than zero."); 
       System.exit(0); 
      } 

      for(start=start;start<=end;start=start+step){ 
       System.out.println(start); 
      } 

      try{ 
       System.out.print("\nDo you want to try again (Y/N)?"); 
       in=input.readLine(); 
      }catch(IOException e){ 
       System.out.println("Error!"); 
      } 
     }while(in.equalsIgnoreCase("Y")); 

    } 
} 

if-elseを使用してください。完全コンパイルプログラムを供給するための

BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 
boolean w4f = true; 

do { 
    String in = input.readLine(); 

    if ("Y".equalsIgnoreCase(in)) { 
     w4f = false; 

     // do something 

    } else if ("N".equalsIgnoreCase(in)) { 
     w4f = false; 

     // do something 

    } else { 

     // Your error message here 
     System.out.println("blahblah"); 
    } 

} while(w4f); 
+0

は正確には何期待どおりに動作しません。このように入っていることを確認?あなたのコードを見て、すでに関数を実装していますか? – home

+0

@homeはいコードは動作しますが、エラーを表示してから、y/nを入力しても「y/n」の質問は表示されません。ただプログラムを終了します。 – Zhianc

答えて

1

まず1:

+0

これもうまくいきます:)ありがとう! – Zhianc

1

はこのような何かを行います。質問者の90%以上がそれをしています。 最終的なtry/catchブロックでは、ユーザが「y」または「n」

 try{ 
      while (!in.equalsIgnoreCase("y") && !in.equalsIgnoreCase("n")) { 
        System.out.print("\nDo you want to try again (Y/N)?"); 
        in=input.readLine(); 
      } 
     }catch(IOException e){ 
      System.out.println("Error!"); 
     } 
    }while(in.equalsIgnoreCase("Y")); 
+0

は、 '' Y '.equalsIgnoreCase(in) 'に対して' w4f = true'であってはなりません。 – Zhianc

+0

@jcデビッド:そうです。私はそれがどのように一般的にうまくいくかを概説したかっただけです。あなたが答えを受け入れると、あなたはポイントを得たと思いますよね? – home

+0

ここでブレーク/コンティニューを使用することができます。 – atamanroman

関連する問題