1

int num数字だけを受け入れる必要があります。文字を入力するとエラーになります。文字にすぐにフラグを立てる方法はありますか、それとも文字列numとして取り込んでループを実行する必要がありますか?

import java.util.Scanner;

public class Test 
{        
    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Input a number.");
        int num = input.nextInt();
    }
}
4

2 に答える 2

1

Scanner.hasNextInt()を使用する必要があります。

メソッドを使用して、このスキャナーの入力の次のトークンをデフォルト基数の int 値として解釈できる場合は、true を返しますnextInt()。スキャナは入力を超えて進みません。

public static void main(String[] args) 
 {
 System.out.println("Input a number.");
 Scanner sc = new Scanner(System.in);
 System.out.print("Enter number 1: ");
 while (!sc.hasNextInt()) sc.next();
 int num = sc.nextInt();

 System.out.println(num);

 }
于 2012-09-23T05:59:57.947 に答える
0

あなたはおそらくこのようなことをしたいと思うでしょう:

import java.util.InputMismatchException
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Input an integer.");
        int num = 0;  // or any other default value
        try {
            num = input.nextInt();
        } catch (InputMismatchException e) {
            System.out.println("You should've entered an integer like I told you. Fool.");
        } finally {
            input.close();
        }
    }
}

ユーザーが整数以外のものを入力すると、catchブロック内のコードが実行されます。

于 2012-09-23T05:53:32.413 に答える