Scanner input = new Scanner(System.in);
Pourriez-vous me donner une explication détaillée de ce que le code ci-dessus fait étape par étape? Je ne comprends pas vraiment comment ça marche et comment ça me relie plus tard pour pouvoir faire cette déclaration:
int i = input.nextInt()
Très bien, développons avec quelques explications simplifiées sur la classe Scanner
.
C'est une classe Oracle standard que vous pouvez utiliser en appelant le import Java.util.Scanner
.
Faisons donc un exemple de base de la classe:
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;
}
}
Désormais, lorsque vous appelez Scanner input = new Scanner(System.in);
, vous créez un nouvel objet de la classe Scanner
(vous créez donc un nouveau "Scanner") et vous le stockez dans la variable input
. En même temps, vous appelez le (ainsi appelé) constructeur de la classe, avec le paramètre System.in
. Cela signifie qu'il va lire à partir du flux d'entrée standard du programme.
Désormais, lorsque vous appelez input.nextInt();
, vous exécutez la méthode à partir de l'objet que vous venez de créer (également documenté ). Mais comme nous le voyons, cette méthode retourne un entier, donc si nous voulons utiliser cet entier, nous devons assigner l'appel à une variable comme vous le faites:
int i = input.nextInt();
Scanner input = new Scanner(System.in);
crée une instance newScanner
qui pointe vers le flux input transmis en tant qu'argument. Dans votre cas, le flux Steam est flux d'entrée standard.
Ainsi, une fois que votre instance de scanner pointe vers elle, vous pouvez analyser le flux et obtenir integers
, strings
et effectuer d'autres opérations.
Scanner s = nouveau Scanner (System.in);
Au-dessus de l'instruction, nous créons un objet d'une classe Scanner définie dans import Java.util.scanner package classe de scanner permet à l'utilisateur de prendre la console de formulaire de saisie.
System.in est passé en tant que paramètre dans la classe du scanner indiquera au compilateur Java.
Scanner input = new Scanner(System.in);
Crée un nouvel objet de type Scanner
à partir de l'entrée standard du programme (dans ce cas probablement de la console) Et.
int i = input.nextInt()
utilise la méthode nextInt
de cet objet, ce qui vous permet de saisir du texte qui sera analysé dans un entier.