Вернуть ошибку при вводе ни Y / N - PullRequest
1 голос
/ 07 августа 2011

Как мне вернуть ошибку и снова задать вопрос 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?

Ответы [ 2 ]

1 голос
/ 07 августа 2011

Первые +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"));
1 голос
/ 07 августа 2011

Сделайте что-то вроде этого:

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);
...