Une addition

           

Ce deuxième petit exemple permet de rencontrer des variables, de définir ce qu'est une affectation, de faire une somme. Nous en présentons deux formes.

Premiére forme


public class Addition {
public static void main(String[] arg) {
int a;
int b;
int somme;

a = 2;
b = 3;
somme = a + b;
System.out.println("a = " + a + ", b = " + b);
System.out.println("La somme vaut " + somme);
}
}

On obtient à l'exécution, avec notre programme :

a = 2, b = 3
La somme vaut 5
Ici, il y a trois variables dites variables locales de la méthode main : les variables a, b et somme. À chaque variable correspond un emplacement en mémoire qui occupe un certain nombre d'octets, selon son type. Nos trois variables sont ici déclarées de type int ; une variable de type int est codée sur quatre octets dans la mémoire de l'ordinateur. On peut mettre dans une telle variable des entiers compris entre -(2 puissance 15) = -2147483648 et (2 puissance 31) -1 = 2147483647. Toute variable doit être déclarée avant d'être utilisée, comme nous le faisons ici : le type de la variable, suivi de son nom, suivi d'un ";".

Pour mettre une valeur dans une variable, on utilise une opération qui s'appelle l'affectation et qui utilise le signe = ; l'instruction :
    a = 2;
est une affectation. Elle ne signifie pas la variable a vaut 2. Cette instruction demande à ce que la valeur de la variable qui figure dans le premier membre devienne égale à celle qui figure dans le second membre ; on affecte à a la valeur du second membre, c'est-à-dire ici la valeur 2..

L'instruction :
    somme = a + b;
additionne les valeurs des variables a et b et met le résultat dans la variable somme.

Observons maintenant l'instruction :
    System.out.println("a = " + a + ", b = " + b);
Elle écrit à l'écran :
    a = 2, b = 3
"a = " est ce qu'on appelle une chaîne de caractères. Le signe + utilisé ici fait une concaténation entre la chaîne de caractères "a = " et la chaîne de caractères donnant la valeur de a, ici la chaîne de caractès "2" ; dès qu'un signe + a un opérande (à sa gauche ou à sa droite) qui est une chaîne de caractères (ici "a = "), alors il s'agit de l'opérateur de concaténation ; l'autre opérande est toujours alors traduit en une chaîne de caractères ; la concaténation se fait de la gauche vers la droite, d'où le résultat obtenu à l'écran par l'instruction.

Pour accéder directement au programme. Nous vous conseillons de copier ce programme et de faire des varaintes pour mieux comprendre ce qui se passe.

Seconde forme

public class AdditionBis {
public static void main(String[] arg) {
int a;
int b;
int somme;

a = Integer.parseInt(arg[0]);
b = Integer.parseInt(arg[1]);
somme = a + b;
System.out.println("a = " + a + ", b = " + b);
System.out.println("La somme vaut " + somme);
}
}

arg[0] est le premier élément du tableau arg qui figure dans l'en-tête la méthode main ; arg étant un tableau d'objets de type String, arg[0] est de type String.

Si on utilise des arguments de la méthode main comme ici, il convient d'envoyer les arguments à la méthode main au moment de l'exécution ; ces argument sont récupérés dans le programme avec arg[0], arg[1], ...
Si on travaille avec Eclipse, il faut donner les arguments avant d'exécuter le programme (en utilisant, si votre version d'Eclipse est en anglais, "Run Configurations", puis en choisissant l'onglet Arguments pour préciser les arguments dans "Program arg"). Pour additionner avec notre programme les entiers 7 et 15, il faut indiquer les arguments 7 et 15.
Si on exécute le programme en utilisant directement la commande java, pour additionner les entiers 7 et 15, on utilise la commande :
    java AdditionBis 7 15

Si on donne les arguments 7 et 15, la sortie du programme est :

a = 7, b = 15
La somme vaut 22


Pour accéder directement au programme

octet : un octet est composé de huit bits ; chaque bit peut prendre la valeur 0 ou la valeur 1.


n = Integer.parseInt(arg[0]); sert à traduire la chaîne de caractères arg[0] en un nombre de type int. Bien que cela soit encore difficile à ce niveau, sachez néanmoins que la classe Integer du paquetage java.lang contient une méthode nommée parseInt qui traduit une chaîne de caractères représentant un entier en l'int correspondant. Il faut bien faire la distinction entre une chaîne de caractères et un int, qui, lui, est codé en binaire ; l'entier 21 est codé en binaire par : 10101 (21 = 16 + 4 + 1).


© Irène Charon, Télécom ParisTech 2012