-3

メニューを表示し、ユーザーに 2 つの選択肢から選択するように求めるプログラムを作成したいプログラムは、ユーザーに整数 x を入力するように要求し、x から 2 までの偶数の整数を出力します。 - コードは無効な文字を認識し、「無効な選択!!」を表示する必要があります。メッセージ。- プログラムは、「続行しますか?」というメッセージを表示するはずです。y または n " 各計算の後。ユーザーは「y」を入力して続行します。それ以外の場合、ユーザーは「n」を入力します。私はこのように私のコードを書きました

import java.util.*;

public class choices{
    //main method
    public static void main(String args[]){
        Scanner input=new Scanner(System.in);
        String op;
        int num;

        String op2;
        String odd="";
        String even="";
        int count=0;

        do{
            System.out.println("a) Find odd numbers");
            System.out.println("b) Find even numbers");
            System.out.print("choose an option [ a, b]: ");
            op=input.next();
            if (op.equals('a'))
                System.out.print("Enter Integer number : ");
            num=input.nextInt();

            for(int i=num ; i >=num-i ;i--){
                if(num%2!=0)
                    odd=odd+""+i;
                System.out.print("odd numbers are : "+odd );
            }

            if (op.equals('b')){
                for(int i=num ; i >=num-i ;i--){
                    if(num%2==0)
                        even=even+""+i;      
                    System.out.print("even numbers are : "+even );
                }
            }
            else
                System.out.println("invalid choice");

            System.out.print("Do you want to continue (y or n)?");
            op2=input.next();  


            if(op2.equals('n')) 
                System.out.println("Bye");
        }

        while(!op2.equals('n'));
        count++;



    }
}

しかし、問題は次のとおりです:それは後に停止します>オプションを選択します[a、b]:b

a) Find odd numbers
b) Find even numbers
choose an option [ a, b]: b
d
Exception in thread "main" java.util.InputMismatchException
       at java.util.Scanner.throwFor(Scanner.java:909)
       at java.util.Scanner.next(Scanner.java:1530)
       at java.util.Scanner.nextInt(Scanner.java:2160)
       at java.util.Scanner.nextInt(Scanner.java:2119)
       at choices.main(choices.java:30)
4

3 に答える 3

2
System.out.print("choose an option [ a, b]: ");
op=input.next();
if (op.equals('a'))
System.out.print("Enter Integer number : ");
num=input.nextInt();

if here の範囲に注意してください。それはおそらく間違っています。毎回 nextInt() を呼び出しています。

于 2013-11-05T21:00:14.203 に答える