Introduction à Java - Cours 1
Document Details
Uploaded by Deleted User
ÉTS
Mirna Awad et Roberto Erick Lopez Herrejon
Tags
Summary
Ce document est un cours d'introduction à la programmation Java. Il présente les concepts fondamentaux de Java, tels que la déclaration de variables, les types de données, les opérations et l'affichage d'informations.
Full Transcript
Introduction à Java Enseignante: Mirna Awad Responsable de cours: Roberto Erick Lopez Herrejon 1 Objectifs Présenter les concepts principaux de Contrôle de l’exécution Java if, switch Déclaration d...
Introduction à Java Enseignante: Mirna Awad Responsable de cours: Roberto Erick Lopez Herrejon 1 Objectifs Présenter les concepts principaux de Contrôle de l’exécution Java if, switch Déclaration de variables Boucles – for, while, do-while Type de données Définition et appel des méthodes Opérations booléennes Opérations relationnelles Opérations arithmétiques Transtypage Anatomie d’un programme Compilation et exécution Tableaux 2 Déclaration de variables Type de variable suivi: d’un nom de variable ou d’une liste de noms de variables séparés par des virgules Syntaxe : ; , , ; Exemples int age; char confirmation; double pointx, pointy, deltax, deltay; 3 Règles pour les noms de variables Les noms de variables : Doivent commencer avec une lettre, le symbole _, ou le symbole $. compteur 3distance Ne peuvent pas être des mots-clés. double Peuvent être une séquence de lettres, de nombres, des symboles _ou $ qui suivent les 2 règles antérieures. inc_delta nombre3 4 Java est sensible à la casse Les variables et toutes les autres structures de Java distinguent les majuscules et les minuscules Exemples : V et v motCompteur et motcompteur 5 Types de données Primitifs Primitifs Type Nombre de Intervalle Les types les plus simples qui existent Bits par défaut en Java byte 8 [-128,127] short 16 [-32768, 32767] Objets – Références int 32 [-231, , 231-1] Sont définis par les classes et les long 64 [-263, , 263-1] interfaces float 32 32 bits virgule flottante Chaque classe et chaque interface -3.4E38 a 3.4E38 définit un type double 64 64 bits virgule flottante -1.7E308 a 1.7E308 Type spécial char 16 Unicode void aucun type boolean 1 true , false double float long int short byte 6 Assigner des valeurs aux variables Syntaxe : = ; Exemples : x=4; y=20; Il est possible d’assigner des valeurs dans la définition de variables : int x=4; byte y=20; double a,b,c,d = 20.5; 7 Afficher du texte à l’écran Deux instructions de base : System.out.print( ); sans nouvelle ligne System.out.println(); avec nouvelle ligne Exemples : System.out.println("Bonjour tout le monde"); System.out.print(x); System.out.println("Variable x = " + x); 8 Opérations de comparaison (relationnelles) Opération Signification == égal à != pas égal à > plus grand que (supérieur à) < moins grand que (inférieur à) >= supérieur ou égal à 3 && y < 15)); System.out.println("(x>3) || (y < 15) est " + (x>3 || y < 15)); System.out.println("!(x3) & (y < 15) est " + (x>3 & y < 15)); System.out.println("(x>3) | (y < 15) est " + (x>3 | y < 15)); System.out.println("(x>3) ^ (y < 15) est " + (x>3 ^ y < 15)); 12 Caractères Un caractère est un symbole simple Le type d’un caractère est char Java utilise l’Unicode de 16 bits pour décoder les caractères Exemples: ‘x’ , ‘1’, ‘y’ Caractères spéciaux : \n nouvelle ligne (new line) \t tabulateur (tab) \r touche enter (carriage return) double float long int char 13 Exemples char c = 'A'; char d = '\u0041'; char e = 'a'; Affichage? char f = 'b'; System.out.println("c= " + c + " d= " + d); System.out.println("e= " + e + " f= " + f); System.out.println(" f > e est " + (f > e)); System.out.println(" c > e est " + (c > e)); 14 Exercice de participation #1 Quelles sont les valeurs de ces variables après l’initialisation? int x = 3; double d = 4; byte b = 300; a) x=3, d=4, b=128 b) x=3, d=4, b=300 c) x=3, d=4, b=-172 d) Erreur du compilateur e) Aucune de ces réponses 15 Opérations arithmétiques Opérations standard +, -, *, /, % (modulo), ++, -- Précédence standard () ++, -- *, /, % +, - 16 Incrément (++) et décrément (--) Exemple si x = 10; y = ++x; => y = 11 x = 11 y = x++; => y = 10 x = 11 Même chose pour le décrément -- Abréviation : y = y + 5; équivalent à y + = 5; 17 Associativité L’associativité détermine l’ordre des opérations quand deux opérations ont la même précédence. Toutes les opérations binaires font l’association à gauche sauf l’assignation (=). 18 L’ordre d’évaluation des opérations binaires Les opérations binaires évaluent au début le premier opérande, et ensuite le deuxième opérande. C’est important quand on a des effets secondaires (side effects) int a = 0; int a = 0; int x = a + ++a; int x = ++a + a; System.out.println(" x= " + x); System.out.println(“x= " + x); 1 2 19 Exemple – précédence et associativité Quelles sont les valeurs de r et de s? int a = 7; int b = 2; int c = 4; int r = a - b * c++; int s = a + b * c % 6 - 5; 20 Opérateur conditionnel Syntaxe : condition ? : ; Exemple : boolean test = false; int valeur = test == true ? 10 : 20; => valeur = ? Astuce : Procédez avec précaution parce que le code est un peu difficile à interpréter 21 Transtypage (type casting) Règle générale : double Si le type est suffisant ok Exemple : float à double float Si le type n’est pas suffisant faire attention aux valeurs long Exemple : double à float, ça peut être correct ou non selon la valeur à int transformer. short char Transtypage : Implicite automatique byte Explicite fait par le programmeur 22 Transtypage – exemples int i; float r; r = i; correct i = r; incorrect double x, y; int quotient; quotient = (int) (x/y ); incorrect 23 Transtypage – exemple Quelle est la valeur de la variable i? char c = 'A'; int i = c; 24 Méthode main() en Java public class Premier { public static void main(String[ ] args) { System.out.println(“Bonjour Monde”); } } 1) Le programme est stocké dans le fichier Premier.java 2) Toute application Java doit obligatoirement contenir une méthode main() qui sera exécutée en premier par le programme Java 25 Analyse du programme Premier identifier une classe public class Premier { modificateur modificateur début de l’exécution tableau pour éléments d’entrée public static void main (String[] args) { System.out.println(“Bonjour Monde”); } afficher un message à l’écran } 26 Compiler et exécuter un programme La compilation crée un fichier avec.class qui contient le bytecode > javac Premier.java Premier.class L’exécution utilise le fichier avec le bytecode > java Premier > Bonjour Monde Dans le laboratoire, on va utiliser un outil IDE pour faire la programmation, la compilation et l’exécution Basé sur Eclipse 27 Définitions de tableaux Syntaxe: type nom[ ] = new type [ taille ]; type nom[ ] [ ] = new type [taille1][taille2]; ou type[ ] nom = new type [taille]; type[ ] [ ] nom = new type[taille1][taille2]; Exemples : int valeurs[ ] = new int; int [ ][ ] matrice = new int; 28 Initialisation de tableaux Avec les valeurs des indices valeurs = 4; les indices prennent des valeurs de 0 à taille – 1 matrice = 1; de chaque dimension Avec l’énumération de valeurs dans la définition : int valeurs[] = { 5, 2, 4, 8, 9}; int matrice [ ][ ] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; 29 Taille des tableaux On utilise le mot-clé length pour obtenir la taille d’un tableaux Exemples : int valeurs[] = { 5, 2, 4, 8, 9}; Systemt.out.println(valeurs.length); 5 int matrice [ ][ ] = { {1, 2, 3}, {4, 5, 6},}; System.out.println(matrice.length); 2 System.out.println(matrice.length); 3 30 Exercice de participation #2 Avec la définition suivante : int matrice [ ][ ] = { {1, 4, 7}, {2, 5, 8}, {3, 6, 9} }; Question : Quelle est la valeur de matrice ? A) 5 B) 2 C) 4 D) 8 31 Un programme un peu plus complexe Tâche : Écrivez un programme qui reçoit le rayon d’un cercle, un nombre de type double, et qui affiche l’aire qui correspond à ce cercle. Exemple : > java Aire 3 L’aire du cercle avec un rayon de 3 est de 28.2744 La formule à utiliser : aire = 3.1416 * rayon2 32 Calcul de l’aire d’un cercle public class Aire { public static void main(String[] args) { double rayon = Double.parseDouble(args); double pi = 3.1416; double aire = pi * rayon * rayon; System.out.print(" Aire d’un cercle avec rayon " + rayon); System.out.println(" est " + aire); } } args contient la valeur du premier paramètre args[ième] contient la valeur du ième paramètre Double.parseDouble, fait la conversion d’un String à une valeur double 33 Fil d’exécution (control flow) Détermine l’ordre d’exécution des instructions Les instructions sont exécutées de façon séquentielle On peut changer l’ordre avec : L’instruction conditionnelle (branch) : if, switch L’itération : while, do-while, for L’exécution et retour des méthodes : return Les exceptions : à voir sous peu Les assertions : à voir dans les prochains cours… 34 Syntaxe de if if (condition) instruction; if (condition) { … séquence d’instructions … } condition if (condition) { vrai faux … séquence d’instructions … } else { true false … séquence d’instructions … } 35 Exemples de if if (compteur > 10) compteur = 0; if (compteur > 0 && compteur < 10) { produit = nombre * 10; total + = produit; } 36 Recommandations pour le if Toujours utiliser { } même si c’est if (opt ==1) { une seule instruction char = ‘1’; } else { if (opt == 2) { Toujours aligner les { } qui char = ‘2’; correspondent dans la même } // de opt = 2 colonne if (newline) { char = ‘\t’; Toujours ajouter des } else { commentaires après le } if (opt ==3) { char = ‘3’; } // de opt = 3 } // de else newline } // de else opt = 1 37 Syntaxe de switch valeurs de type: switch (expression) { char case valeur1 : … instructions … break; byte case valeur2 : … instructions … short break; int... default : … instructions … optionnel break; } les break sont optionnels 38 Exemple de switch int val = 3; int total = 10; switch (val) { val =0 val = 1 case 0: total = 2; total = 2 break; val = 2 case 1: total = 5; total =5 case 2: total += 3; break; total += 3 default: total = 0; total = 0 break; } break total = 0 39 Exemple de switch int val = 1; int total = 10; switch (val) { val =0 val = 1 case 0: total = 2; total = 2 break; val = 2 case 1: total = 5; total =5 case 2: total += 3; break; total += 3 default: total = 0; total = 0 break; } break total = 8 40 Exercice de participation #3 int i = 3; Quelles sont les valeurs de i et de int x = 10; x à la fin du code? A) i = 3 x = 10 switch(i) { case 0: case 1: case 2: break; B) i = 5 x = 15 case 3: i+=2; C) i = 5 x = 10 case 4: x+=i; break; D) i = 3 x = 3 default: x = 3; E) Aucune de ces réponses } 41 Conseils pour switch Utilisez toujours le default même si vous êtes bien sûr d’avoir considéré toutes les valeurs Dans ce cas, retournez un code d’erreur Utilisez préférablement le break dans toutes les expressions case. Si deux expressions case ou plus partagent du code, ajoutez un commentaire pour expliquer cela. 42 Syntaxe de la boucle while Syntaxe : while (condition) instruction; while (condition) { … séquence d’instructions… } Exécute l’instruction ou les instructions de la boucle pendant que l’évaluation de la condition est vraie (true) 43 Exemple de while Compteur = 1 Compteur = 2 int compteur = 1; Compteur = 3 while (compteur