Scanner input = new Scanner(System.in);
上記のコードがステップごとに実行していることについて詳細な説明をお願いします。私はそれがどのように機能し、後でこの声明を行うことができるのか私にリンクする方法を本当に理解していません:
int i = input.nextInt()
さて、 Scanner
クラスについての簡単な説明で詳しく説明しましょう。
これは、_import Java.util.Scanner
_を呼び出すことで使用できる標準のOracleクラスです。
それでは、クラスの基本的な例を作りましょう:
_class Scanner{
InputStream source;
Scanner(InputStream src){
this.source = src;
}
int nextInt(){
int nextInteger;
//Scans the next token of the input as an int from the source.
return nextInteger;
}
}
_
Scanner input = new Scanner(System.in);
を呼び出すと、Scanner
クラスの新しいオブジェクトを作成し(したがって、新しい「スキャナー」を作成し)、変数input
に格納します。同時に、パラメータ_System.in
_を使用して、クラスの(いわゆる) constructor を呼び出しています。つまり、プログラムの標準入力ストリームから読み取ることになります。
これで、input.nextInt();
を呼び出しているときに、作成したオブジェクトからメソッドを実行します( documented )。しかし、ご覧のとおり、このメソッドは整数を返すため、その整数を使用する場合は、呼び出しを変数に割り当てる必要があります。
_int i = input.nextInt();
_
Scanner input = new Scanner(System.in);
は、引数として渡される入力ストリームを指すnewScanner
インスタンスを作成します。あなたの場合、Steamは標準入力ストリームです。
そのため、スキャナーインスタンスがそのインスタンスをポイントしたら、スキャンストリームを取得し、integers
、strings
を取得して他の処理を実行できます。
Scanner s = new Scanner(System.in);
上記のステートメントでは、import Java.util.scannerパッケージで定義されているScannerクラスのオブジェクトを作成します。 scannerクラスを使用すると、ユーザーはコンソールから入力フォームを取得できます。
System.inは、スキャナークラスのパラメーターとしてJavaコンパイラシステム入力がconsole(keyboard)を介して提供されます)として渡されます。
Scanner input = new Scanner(System.in);
プログラムの標準入力(この場合はおそらくコンソール)からScanner
型の新しいオブジェクトを作成し、
int i = input.nextInt()
そのオブジェクトのnextInt
メソッドを使用します。これにより、テキストを入力でき、整数に解析されます。