Introduction à la programmation (420-PK2-SL) cours 4 Gestion des applications Technologie de l’information (LEA.BW)
Plan Rappel Les opérateurs conditionnels Les instructions conditionnelles Mise en pratique avec un exercice Demain Laboratoire toute la période
Rappel Saisie Scanner ou BufferedReader Affichage System.out.println Opérateurs +,-,*,/,++,+=,*=,... Affectation = Types boolean,byte,short,char,int,float,double,long Variables Programme principal public static void main(String args[]) Commentaires //,/*,/**
Les opérateurs conditionnels En ordre de priorité OpérateursDescription <Plus petit >Plus grand <=Plus petit ou égale >=Plus grand ou égale ==Est égale !=N’est pas égale ^OU exclusif &&ET logique ||OU logique
Les instructions conditionnelles Instruction de sélection Se base sur l’évaluation d’une condition Permets de sélectionner le code à exécuter selon l’évaluation de la condition Forme générale: Si expression booléenne Tâches à exécuter si l’expression est vraie Fin Exemple Si j’ai assez d’argent Je vais au cinéma Fin
Les instructions conditionnelles Expression de la condition Une fonction booléenne A ET B NON B Une expression relationnelle A>B A==B Une affectation A=B L’affectation est une expression La valeur de l’expression d’affectation est égale à la valeur affectée Exemple: L’évaluation de A=10 donne 10 donc vrai car différent de 0 La condition est FAUSSE si le résultat de l’évaluation de l’expression est égal à 0 Exemple: X=0, VRAI&&FAUX, 3<2 La condition est considérée VRAIE dans tous les autres cas Exemple: X=5, Y=-1, 4>2, VRAI || FAUX
Les instructions conditionnelles En JAVA if (expression){ Instruction à exécuter si l’expression est différente de zéro } Les parenthèses sont obligatoires Les accolades délimitent ce qu’on appelle un bloc de code. Le bloc doit être indenté (décalé) vers la droite. Si les accolades sont manquantes, seule la première instruction est calculée comme faisant partie du if Je vous conseil de toujours utiliser les accolades.
Les instructions conditionnelles Exemple If (x>2) System.out.println(x); x=x+1; if(3 < x < -1) System.out.println(x); Sera toujours exécutée car il n’y a pas d’accolades (NE FAIT PAS PARTIE DU IF) Ne sera jamais exécutée car 3 -1 Il faut plutôt faire if (3 < x && x < -1)
Les instructions conditionnelles Exemple if(x=8) System.out.println(x); if(x==8) System.out.println(x); Sera toujours exécutée car x = 8 donne 8
Les instructions conditionnelles Exemple Écrivez un programme qui saisit un nombre entier et qui affiche si le nombre est négatif. import java.util.Scanner; public class nombre_negatif{ public static void main(String args[]){ int nombre; Scanner clavier = new Scanner(System.in); System.out.println("Entrer un nombre:"); nombre = clavier.nextInt(); if(nombre < 0){ System.out.println("Le nombre est négatif"); }
Les instruction de sélection Plusieurs formats possibles Si Si-Sinon Si-Sinon Si Équivalent en Java If If…else If…else if
Les instructions conditionnelles Si-Sinon SiSi-SinonSi
Les instruction conditionnelles Si-Sinon Il est possible de faire exécuter des instructions dans le cas contraire de l’évaluation d’une expression Forme générale Si expression booléenne Tâche à exécuter si l’expression est vraie Sinon Tâche à exécuter si l’expression est fausse Fin Exemple Si j’ai assez d’argent Je vais au cinéma Sinon Je reste à la maison Fin
Instructions conditionnelles En JAVA if (expression){ Instruction à exécuter si l’expression est différente de zéro }else{ Instruction à exécuter si l’expression est égale à zéro } La règle pour les accolades s’applique encore: si les accolades sont manquantes, seule la première instruction est considérée comme faisant partie du else
Instructions conditionnelles Exemple Écrivez un programme qui saisit un nombre entier et qui affiche si le nombre est pair ou si le nombre est impair. import java.util.Scanner; public class nombre_pair{ public static void main(String args[]){ int nombre; Scanner clavier = new Scanner(System.in); System.out.println("Entrer un nombre:"); nombre = clavier.nextInt(); if(nombre%2==0){ System.out.println("Le nombre est pair"); }else{ System.out.println("Le nombre est impair"); }
Instructions conditionnelles On peut mettre plusieurs instruction de sélection imbriquées (l’une à l’intérieur de l’autre) Exemple Écrivez un programme qui saisit un nombre entier. On affiche si le nombre est pair et on affiche s’il est positif ou négatif. Même chose pour un nombre impair.
Instructions conditionnelles import java.util.Scanner; public class nombre_pair_signe_version1{ public static void main(String args[]){ int nombre; Scanner clavier = new Scanner(System.in); System.out.println("Entrer un nombre:"); nombre = clavier.nextInt(); if(nombre%2==0){ System.out.println("Le nombre est pair"); if(nombre < 0){ System.out.println("Le nombre est négatif"); }else{ System.out.println("Le nombre est positif"); } }else{ System.out.println("Le nombre est impair"); if(nombre < 0){ System.out.println("Le nombre est négatif"); }else{ System.out.println("Le nombre est positif"); } Répétition
Instructions conditionnelles Truc Si on a les mêmes instructions qui se répètent dans le if et dans le else, on peut les sortir et les mettre avant ou après (selon le cas). Cela évite la répétition inutile de code
Instructions conditionnelles import java.util.Scanner; public class nombre_pair_signe_version2{ public static void main(String args[]){ int nombre; Scanner clavier = new Scanner(System.in); System.out.println("Entrer un nombre:"); nombre = clavier.nextInt(); if(nombre%2==0){ System.out.println("Le nombre est pair"); }else{ System.out.println("Le nombre est impair"); } if(nombre < 0){ System.out.println("Le nombre est négatif"); }else{ System.out.println("Le nombre est positif"); }
Instructions conditionnelles Instruction de sélections multiples Si-Sinon Si Forme générale Si expression boolènne vraie Tâche à exécuter si l’expression est vraie Sinon Si expression booléenne vraie Tâche à exécuter si l’expression est vraie Sinon Si expression booléenne vraie Tâche à exécuter si l’expression est vraie Sinon (optionnel aussi) Tâche à exécuter si rien d’autre n’a eu lieu fin
Instructions conditionnelles Exemple Si j’ai au moins 30$ Je vais au restaurant Sinon Si j’ai au moins 15$ Je vais au cinéma Sinon Si j’ai au moins 5$ Je vais au club vidéo Sinon Je reste à la crèmerie Fin
Instructions conditionnelles Exemple Écrivez un programme qui saisit deux nombres entiers qui représentent le numérateur et le dénominateur d’une fraction. Si le dénominateur est égal à 0, on affiche « impossible ». Sinon Si le dénominateur est égal à 1 on affiche seulement le numérateur. Sinon Si le numérateur est égal à 0 on affiche 0. Sinon si le dénominateur est négatif on multiplie les deux entiers par -1 et on affiche numérateur/dénominateur Si les deux sont positifs on affiche aussi numérateur / dénominateur.
Instructions conditionnelles import java.util.Scanner; public class num_denum{ public static void main(String args[]){ int numerateur,denumerateur; Scanner clavier = new Scanner(System.in); System.out.println("Entrer un numerateur:"); numerateur = clavier.nextInt(); System.out.println("Entrer un denumerateur:"); denumerateur = clavier.nextInt(); System.out.println("Resultat:"); if(denumerateur == 0){ System.out.println("Impossible"); }else if(denumerateur == 1 || numerateur == 0){ System.out.println(numerateur); }else { if(denumerateur < 0){ denumerateur = denumerateur * -1; numerateur = numerateur * -1; } System.out.println(numerateur + " / " + denumerateur); }
Instructions conditionnelles 1) Écrivez un programme imc.java qui demande à un utilisateur son poids (en kilos) et sa taille (en mètres) et qui lui affiche son indice de masse corporel (poid / taille 2 ) Exemple: 84 kilos et 1,81 mètre donne un IMC de Indice utiliser Double.parseDouble() plutôt que Integer.parseInt(). 2) Modifiez le code pour afficher la catégorie d’IMC calculé Voici les différents intervalles des catégories Insuffisance pondérale = Moins de 18,5 Poids normal = 18,5 à 24,9 Embonpoint = 25 à 29,9 Obésité = 30 ou plus Exemple: 86 kilos et 1,79 mètre donne un IMC de vous souffrez d’embonpoint.