[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]

2.9
  Année de naissance - Corrigé
Niveau 1
 
 
Fichiers:
  Age.java    

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Les directives import se placent en début de fichier
import java.util.Scanner;

class Age {

    public static void main(String[] args) {
        // on fera mieux plus tard !
        final int ANNEE_COURANTE = 2023;

        System.out.println("Donnez votre age : ");

        Scanner input = new Scanner(System.in);

        int age = input.nextInt();

        int annee = ANNEE_COURANTE - age;

        // A partir de la semaine prochaine on pourra
        // tester si l'utilisateur ne nous dit pas de bêtise sur son âge !

        System.out.println("Votre annee de naissance est : " + annee);
    }
}

Cette solution utilise le bagage actuel : celui avec lequel vous ne savez mettre des instructions que dans le corps de la méthode main. L'objet input de type Scanner qui permet de lire des données introduites depuis le terminal est déclaré et initialisé dans la méthode main.

Note: si vous procédez de cette manière, et que vous travaillez sous Eclipse, un message de mise en garde sera généré pour vous indiquer que input n'a pas été fermé. Les causes de ce message dépassent les notions vues dans le cadre de ce cours d'introduction et ce message n'aura aucune incidence sur l'exécution de votre programme. Pour l'éviter il suffira d'ajouter l'instruction input.close(); avant la dernière accolade de main; c'est à dire juste après le dernier System.out.println(...) dans le code précédent.

Notez à ce propos, qu'il est possible de déclarer-initialiser cet objet en dehors de main, comme ceci :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
class AgeBis {
    // l'objet input est déclaré ici et plus dans le corps de main
    private static Scanner input = new Scanner(System.in);

    public static void main(String[] args)
        {
            final int ANNEE_COURANTE = 2023; // on fera mieux plus tard !

            System.out.println("Donnez votre age : ");

            int age = input.nextInt();
            
            int annee = ANNEE_COURANTE - age;

            // a partir de la semaine prochaine on pourra
            // tester si l'utilisateur ne nous dit pas de betise sur son age !
            
            System.out.println("Votre annee de naissance est : " + annee);
        }
}

C'est sous cette forme que vous le trouverez donc parfois dans certains corrigés à venir.

Cela peut avoir du sens à partir du moment où nous utiliserons la notion de fonctions/méthodes (un peu plus tard dans le cours).

Pour le moment les mots clés static et private ne vous disent rien. Cela deviendra plus clair dès que les fondamentaux de la POO seront abordés.

 


[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]