-2

誰かがメニュー選択として文字を入力したときに、このプログラムがエラーを出力するようにしたい

package main;

import java.util.Scanner;

public class Main {
    Scanner input = new Scanner(System.in);

    public static void main(String[] args) {
        int UserIn = 0;
        double numberInputA;
        double numberInputB;
        double Answer;

        Scanner input = new Scanner(System.in);

        while (UserIn != 5) {
            System.out.println("What type of calculation would you like to perform?");
            System.out.println("1. Add\n2. Subtract\n" +
                               "3. Multiply\n4. Divide\n5. Exit");
            UserIn = input.nextInt();

            if (UserIn > 5) {
                System.out.println("ERROR choose the numbers on the menu");
            } else if (UserIn < 1) {
                System.out.println("ERROR choose the numbers on the menu");
            }

            if (UserIn < 5) {
                System.out.println("Enter first number:");
                numberInputA = input.nextDouble();
                System.out.println("Enter second number");
                numberInputB = input.nextDouble();

                if (UserIn == 1) {
                    Answer = numberInputA + numberInputB;
                    System.out.println("Number 1 is:" + numberInputA);
                    System.out.println("Number 2 is:" + numberInputB);
                    System.out.println("Result is : " + Answer);
                    System.out.println("");
                }

                if (UserIn == 2) {
                    Answer = numberInputA - numberInputB;
                    System.out.println("Number 1:" + numberInputA);
                    System.out.println("Number 2:" + numberInputB);
                    System.out.println("Result is :" + Answer);
                    System.out.println("");
                }

                if (UserIn == 3) {
                    Answer = numberInputA * numberInputB;
                    System.out.println("Number 1:" + numberInputA);
                    System.out.println("Number 2:" + numberInputB);
                    System.out.println("Result is :" + Answer);
                    System.out.println("");
                }

                if (UserIn == 4) {
                    Answer = numberInputA / numberInputB;
                    System.out.println("Number 1:" + numberInputA);
                    System.out.println("Number 2:" + numberInputB);
                    System.out.println("Result is :" + Answer);
                    System.out.println("");
                }
            }

            if (UserIn == 5) {
                System.out.println("Program exited");
            }

        }
    }
}
4

3 に答える 3

1

ユーザーが正しい入力を行うまでループ機能を使用したい場合は、このスニペットを使用できます。

while(true){
   try{
      UserIn = input.nextInt();
      break;
   }catch (Exception ex){
         System.out.println("Not an acceptable input.");
         input.nextLine();
   }
}
于 2012-12-27T01:53:25.123 に答える
0

コードに try catch ブロックを適用するだけで、都合のよいときに次のようなエラーを出力できます。

    try{
        while (UserIn != 5) {
            System.out.println("What type of calculation would you like to perform?");
            System.out.println("1. Add\n2. Subtract\n" +
                    "3. Multiply\n4. Divide\n5. Exit");
            UserIn = input.nextInt();

            if (UserIn > 5) {
                System.out.println("ERROR choose the numbers on the menu");
            } else if (UserIn < 1) {
                System.out.println("ERROR choose the numbers on the menu");
            }

            if (UserIn < 5) {
                System.out.println("Enter first number:");
                numberInputA = input.nextDouble();
                System.out.println("Enter second number");
                numberInputB = input.nextDouble();

                if (UserIn == 1) {
                    Answer = numberInputA + numberInputB;
                    System.out.println("Number 1 is:" + numberInputA);
                    System.out.println("Number 2 is:" + numberInputB);
                    System.out.println("Result is : " + Answer);
                    System.out.println("");
                }

                if (UserIn == 2) {
                    Answer = numberInputA - numberInputB;
                    System.out.println("Number 1:" + numberInputA);
                    System.out.println("Number 2:" + numberInputB);
                    System.out.println("Result is :" + Answer);
                    System.out.println("");
                }

                if (UserIn == 3) {
                    Answer = numberInputA * numberInputB;
                    System.out.println("Number 1:" + numberInputA);
                    System.out.println("Number 2:" + numberInputB);
                    System.out.println("Result is :" + Answer);
                    System.out.println("");
                }

                if (UserIn == 4) {
                    Answer = numberInputA / numberInputB;
                    System.out.println("Number 1:" + numberInputA);
                    System.out.println("Number 2:" + numberInputB);
                    System.out.println("Result is :" + Answer);
                    System.out.println("");
                }
            }

            if (UserIn == 5) {
                System.out.println("Program exited");
            }

        }
    }catch (Exception e) {
        System.out.println("Invalid Input !!! Program will exit");
    }
于 2012-12-27T03:54:04.510 に答える
0

「Character.isLetter(char)」を使用して、文字が文字かどうかを確認できます

if(Character.isLetter(UserIn))
{
    //do something
}

お役に立てれば!

(追伸: 今後は、テキストの書式をもう少し明確にして、タイトル バーだけでなく質問のメイン コンテンツでも、質問の正確な内容を明確にしてください。)

于 2012-12-27T01:19:53.293 に答える