[Java] Que represente la ligne ...

Résolu
6kenshin62 Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   -  
6kenshin62 Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je débute actuellement le java et il y'a un point que je ne comprends pas malgré mes recherches. Je suis le cours du site du zéro, et je souhaite lire une entrée clavier grâce au scanner.
Il y'a un moment ce code :
Scanner sc = new Scanner(System.in);


Je comprend assez vaguement à quoi il sert mais serait t'il possible de me "traduire" ca en francais ou en tout cas m'expliquer de manière assez poussé ?

Merci
A voir également:

1 réponse

choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
bonjour

C'est assez simple

La classe scanner sert (entre autres) à lire des valeurs de type différent.

"Scanner sc = " est une déclaration

sc représentera le nom de l'instance de la classe scanner que tu va utiliser.

new Scanner() est un appel au constructeur de la classe scanner, c'est à dire une méthode qui permet d'initialiser une instance.

System.in envoyé en argument représente le point d'entrée du système, dans ce cas ci le clavier.

Scanner sc = new Scanner(System.in);

signifie donc que sc a été instancié avec comme argument le clavier de la machine.
3
6kenshin62 Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   70
 
Merci beaucoup pour vos explications.
Si je comprends bien, lorsque j'écrit :
int str = sc.nextInt();

Je crée une variable str de type int qui va stocker la prochain int : nextInt() depuis une entrée clavier : sc

Ainsi, si j'avais instancié sc avec un Scanner qui prend comme argument un fichier (je ne sais meme pas si c'est possible, c'est un exemple) il aurait était me chercher le prochain int de ce fichier ?
0
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
avec ceci par exemple

Scanner sc = new Scanner(new FileReader(« myFile »);
0
6kenshin62 Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   70
 
Une derniere question : est il possible d'utiliser un scanner en meme temps qu'on l'instancie, une sorte de :
int str = Scanner(System.in).nextInt();

Je ne sais pas si c'est très clair ^^

Merci encore
0
choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
ce qui donnerait ceci si il a plusieurs int

Scanner sc = new Scanner(new FileReader("myFile"));
while (sc.hasNextInt()) {
int aInt= sc.nextInt();

}
Chouba, Modérateur CCM
Bibapeloula
0
6kenshin62 Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   70
 
Merci de votre réponse.

Je pense que je me suis mal fait comprendre, je voulais savoir sil il était possible de fusionner ces deux lignes :
Scanner sc = new Scanner(System.in); 

et
int str = sc.nextInt();

En une sorte de :
int str = Scanner(System.in).nextInt();
0