[Java] Que represente la ligne ...

Résolu
6kenshin62 Messages postés 446 Date d'inscription   Statut Membre Dernière intervention   -  
6kenshin62 Messages postés 446 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

1 réponse

  1. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    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
    1. 6kenshin62 Messages postés 446 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
    2. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
       
      avec ceci par exemple

      Scanner sc = new Scanner(new FileReader(« myFile »);
      0
    3. 6kenshin62 Messages postés 446 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
    4. choubaka Messages postés 5535 Date d'inscription   Statut Modérateur Dernière intervention   2 113
       
      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
    5. 6kenshin62 Messages postés 446 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