[Java] Que represente la ligne ...

Résolu/Fermé
6kenshin62 Messages postés 433 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 7 août 2015 - 26 janv. 2012 à 14:47
6kenshin62 Messages postés 433 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 7 août 2015 - 26 janv. 2012 à 15:28
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 39399 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 3 août 2024 2 101
26 janv. 2012 à 14:54
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 jeudi 8 mai 2008 Statut Membre Dernière intervention 7 août 2015 70
26 janv. 2012 à 15:06
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 39399 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 3 août 2024 2 101
26 janv. 2012 à 15:13
avec ceci par exemple

Scanner sc = new Scanner(new FileReader(« myFile »);
0
6kenshin62 Messages postés 433 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 7 août 2015 70
26 janv. 2012 à 15:15
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 39399 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 3 août 2024 2 101
Modifié par choubaka le 26/01/2012 à 15:16
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 jeudi 8 mai 2008 Statut Membre Dernière intervention 7 août 2015 70
26 janv. 2012 à 15:20
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