Java - Saisie Utilisateur

Bonjour à tous, futurs programmeurs Java ! Aujourd'hui, nous allons entamer un voyage passionnant dans le monde de la saisie utilisateur en Java. En tant que votre enseignant de sciences informatiques attentionné, je suis là pour vous guider à travers cet aspect essentiel de la programmation. Croissez-moi, une fois que vous maîtriserez cela, vous aurez l'impression d'être un sorcier invoquant des programmes interactifs !

Java - User Input

Pourquoi la Saisie Utilisateur Compte

Imaginez que vous créez un jeu où le joueur doit deviner un nombre. Sans saisie utilisateur, votre jeu serait aussi passionnant que regarder sécher la peinture ! La saisie utilisateur donne vie à nos programmes, les rendant dynamiques et interactifs. C'est comme donner à votre programme des oreilles pour écouter ce que l'utilisateur veut dire.

La Baguette Magique : Classe Scanner

En Java, notre baguette magique pour capturer la saisie utilisateur est la classe Scanner. C'est comme un robot amical qui écoute ce que l'utilisateur tape et apporte ces informations à notre programme. Voyons comment nous pouvons invoquer cet assistant utile :

import java.util.Scanner;

public class ExempleSaisieUtilisateur {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Plus de code va ici
}
}

Dans ce sort (je veux dire, code), nous faisons deux choses importantes :

  1. Nous importons la classe Scanner du package java.util.
  2. Nous créons un nouvel objet Scanner qui lira à partir de System.in (qui représente la saisie au clavier).

Prendre Notre Première Saisie

Maintenant que notre Scanner est prêt, utilisons-le pour demander à l'utilisateur son nom :

System.out.print("Quel est votre nom ? ");
String name = scanner.nextLine();
System.out.println("Bonjour, " + name + " ! Bienvenue dans la programmation Java !");

Analysons cela :

  1. Nous utilisons System.out.print() pour poser une question à l'utilisateur.
  2. scanner.nextLine() attend que l'utilisateur tape quelque chose et appuie sur Entrée.
  3. Nous stockons ce que l'utilisateur a tapé dans la variable name.
  4. Enfin, nous saluons l'utilisateur avec son nom !

Lorsque vous exécutez ce programme, il pourrait donner quelque chose comme ceci :

Quel est votre nom ? Alice
Bonjour, Alice ! Bienvenue dans la programmation Java !

N'est-ce pas magique ? Nous avons une conversation avec notre programme !

Différents Types de Saisie

Maintenant, explorons comment nous pouvons saisir différents types de données. La classe Scanner est assez polyvalente et peut gérer plusieurs types de données. Voici un tableau des méthodes que nous pouvons utiliser :

Méthode Description
nextLine() Lit une valeur de type String
nextInt() Lit une valeur de type int
nextDouble() Lit une valeur de type double
nextBoolean() Lit une valeur de type boolean
next() Lit un mot simple (String)

Mettons ces méthodes à utiliser dans un exemple plus complexe :

import java.util.Scanner;

public class TypesSaisieUtilisateur {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("Entrez votre âge : ");
int age = scanner.nextInt();

System.out.print("Entrez votre taille en mètres : ");
double height = scanner.nextDouble();

System.out.print("Êtes-vous étudiant ? (vrai/faux) : ");
boolean isStudent = scanner.nextBoolean();

scanner.nextLine(); // Consomme le saut de ligne résiduel

System.out.print("Quelle est votre couleur préférée ? ");
String color = scanner.nextLine();

System.out.println("\nVoici ce que vous m'avez dit :");
System.out.println("Âge : " + age);
System.out.println("Taille : " + height + " mètres");
System.out.println("Étudiant : " + isStudent);
System.out.println("Couleur préférée : " + color);

scanner.close(); // N'oubliez pas de fermer le scanner !
}
}

Ce programme est comme un robot interviewer amical ! Il demande diverses informations et puis résume ce qu'il a appris. Analysons certains points importants :

  1. Nous utilisons différentes méthodes (nextInt(), nextDouble(), nextBoolean(), nextLine()) pour lire différents types de saisie.
  2. Notez le scanner.nextLine() supplémentaire après nextBoolean(). C'est un petit truc pour gérer le saut de ligne laissé par l'appui sur Entrée.
  3. À la fin, nous fermons() le scanner. C'est poli de nettoyer après nous !

Gérer les Erreurs de Saisie

Maintenant, que se passe-t-il si l'utilisateur tape quelque chose d'inattendu ? Par exemple, que se passe-t-il si ils tapent "vingt-cinq" lorsqu'on leur demande leur âge ? Notre programme s'arrêterait plus rapidement qu'un ordinateur des années 90 ! Pour éviter cela, nous pouvons utiliser la gestion des erreurs :

import java.util.Scanner;
import java.util.InputMismatchException;

public class SaisieUtilisateurSécurisée {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int age = 0;
boolean validInput = false;

while (!validInput) {
try {
System.out.print("Entrez votre âge : ");
age = scanner.nextInt();
validInput = true;
} catch (InputMismatchException e) {
System.out.println("Oups ! Ce n'est pas un âge valide. Veuillez saisir un nombre.");
scanner.nextLine(); // Effacer l'entrée invalide
}
}

System.out.println("Votre âge est : " + age);
scanner.close();
}
}

Ce code est comme un enseignant patient. Il continue de demander l'âge jusqu'à ce qu'il obtienne un nombre valide. Si l'utilisateur tape quelque chose qui n'est pas un nombre, il le prie gentiment de réessayer.

Conclusion

Félicitations ! Vous avez appris comment rendre vos programmes Java interactifs en prenant des saisies utilisateur. Souvenez-vous, la pratique fait le parfait. Essayez de créer vos propres programmes qui demandent des saisies aux utilisateurs – peut-être une simple calculatrice, ou un jeu où l'utilisateur doit deviner un nombre. Les possibilités sont infinies !

À mesure que nous terminons, voici une petite blague de programmation pour vous : Pourquoi les développeurs Java portent-ils des lunettes ? Parce qu'ils ne voient pas le C#! (Compris ? C-sharp ? Bon, je me casse...)

Continuez à coder, à apprendre, et surtout, amusez-vous ! Jusqu'à la prochaine fois, c'est votre enseignant de Java attentionné qui signe. Bon codage !

Credits: Image by storyset