Les variables, les tests et les boucles en Java 1] Les variables Une variable est 1 emplacement en mémoire destiné à recevoir des données. Cet emplacement reçoit une valeur qui peut ensuite être réutilisée. 11) Les types de base A 1 instant donné, une variable de ce type contient une seule valeur, qui est un nombre ou un booléen. Type Signification Octet(s) en mémoire Exemples byte Entier très court de -128 à +127 1 short int long Entier court allant de -32768 à +32767 2 Entier allant de -2 147 483 648 à +2 147 483 647 4 Entier long de -9 223 372 036 854 775 808 à 8 + 9 223 372 036 854 775 807 float Réel de -1.4E-45 à +3.4E38 4 double Réel double précision de -4.9E-324 à 8 1.8E308 char Caractère isolé (256 caractères possibles) 1 boolean Valeurs logiques ou booléennes true-false 1 Ex1 : a) Choisir 1 type pour les variables suivantes : temperature = 20 , temperatureSoleil = 6500, Na = 6.021023 , rep = ‘A’ , population = 63 000 000 , conclusion = false . b) Avec abcdAlgos , écrire 1 programme java pour entrer au clavier ces variables , puis les afficher. Initialisation d’1 variable de type char : char choix = ‘n’ ; // ‘ ‘ est obligatoire - choix = ‘ab’ est faux . 12) Un type objet : le type String C’est le type chaîne de caractères . C’est un type objet, qui dispose de méthodes propres ; ex , la méthode equals( ) : c1.equals(c2) qui compare la chaîne c1 à la chaîne c2. Ou la méthode equal() : equal(c1,c2) . Il y a plusieurs façons de déclarer ce type : a) String phrase ; phrase = «Titi est 1 oiseau» ; b) String phrase = new String() ; phrase = «Titi est 1 oiseau » ; c) String phrase = «Titi est 1 oiseau» ; d) String phrase = new String («Titi est 1 oiseau» ) ; Ex2 : Ecrire 1 programme où vous : * entrez votre prénom dans 1 variable monPrenom * entrez 1 chaîne de caractères de votre choix au clavier * comparer les 2 en mettant la réponse dans 1 booléen b * afficher « les 2 prénoms sont égaux » si b = true et « les 2 prénoms ne sont pas égaux » si b =false . 13) Autre type objet : le type tableau 1 tableau est une boîte qui contient plusieurs valeurs du même type. Pour déclarer 1 tableau de 10 entiers, on fait : int[ ] monTableau ; ce qui crée 1 case-mémoire qui a comme nom monTableau, ensuite on crée la « boîte » avec : monTableau = new int[10] ; La variable monTableau contient l’adresse en mémoire de la première case du tableau . Les cases-mémoire : monTableau monTableau[0] ……… @monTableau[0] 20 10 ….. ……. monTableau[9] … … 90 100 : les noms : les contenus monTableau contient l’adresse en mémoire de la première case du tableau. La valeur de la case 1 est : monTableau[0] , et on va jusqu’ à monTableau[9] . On peut considérer que chaque case-mémoire est constituée de son nom et de la valeur attribuée à ce nom . Remarques : * la déclaration peut se faire en 1 ligne : int[ ] monTableau = new int[10] ; * le tableau peut être créé et initialisé de la façon suivante : int[ ] Tab = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100 } ; * Un tableau peut être à plusieurs dimensions : int [ ] [ ] Tab = new int[5][3] ; Tableau avec 5 lignes et 3 colonnes. Exemple d’initialisation : int[ ][ ] Tab = {{1,2,3}, {4,5,6}, {7,8,9}, {10,11,12},{13,14,15}}; Question , ce tableau a l’aspect d’ une grille : donner l’expression de Tab [i] [j] pour les 4 coins , et pour la case centrale . ligne… ligne 2 ligne 1 ligne 0 colonne 0 colonne 1 colonne .. Ex3 : Entrer les jours de la semaine dans 1 tableau. Afficher ces jours ( avec 1 boucle for ) Chercher la propriété qui donne la longueur du tableau , afficher cette longueur . Reprendre la boucle en utilisant cette propriété . 2] Les boucles Une boucle permet d’éxécuter plusieurs fois une instruction.Il y a 2 variantes : la boucle for et la boucle while. 21) La boucle for ( boucle bornée) Algorithmes et Programmes Java a) L’ algorithme principal Algorithme Algorithme principal Début traitement ; Fin b ) Boucle for ( Pour …) Algorithme Pour n de 0 à 9 (par pas de 1) Début Afficher (“Allô ! “) Fin Pour Afficher (“Qui vous êtes ? “) Ex 4 : traduire l’algorithme en langage java , le tester . Langage Java void main() { traitement ; } Langage Java Remarque : l’incrémentation n++ est équivalente à n = n+1 , de même n- - et n = n-1. Ecrire 1 programme qui recueille au clavier les températures de 7 jours successifs et calcule la température moyenne de la semaine. Modifier ce programme pour que l’utilisateur puisse préciser le nombre de jours avant de donner les températures. Ex 5 : remplir 1 tableau à 2 dimensions qui permet d’afficher le dessin : 22) La boucle while (boucle non bornée Tant que …) while Algorithme Tant que (n < 10) Début traitement ; Fin Tant que Langage Java while ( n < 10) { traitement ; } Ex 6 : Définissez 1 chaîne de caractères qui est 1 mot de passe. Demandez à l’utilisateur d’entrer son code , poursuivre la demande tant que le code n’est pas égal au mot de passe . Le choix entre for et while : on utilise for si on connaît à l’avance le nombre de boucles à faire , on utilise while dans le cas contraire (en fait , for est 1 cas particulier de while) Remarques : ** attention aux boucles infinies , comme : while(true) { println( « allô ! » ) ; } ** il existe une variante : do { corps de la boucle} while (test) , qui est utile si le corps de la boucle doit être exécuté au moins 1 fois. 3] Le choix ( Si ….) L’instruction if . if Algorithme Algorithme principal Début Variable solde : réel Afficher(« Entrer le solde de votre compte : ») Saisir (solde) Si (solde > 0) Alors Début Afficher(« Vous pouvez retirer de l’argent ») FinAlors Sinon Début Afficher(« Vous ne pouvez pas retirer d’argent ») FinSinon Fin Ex 7 : traduire l’algorithme en langage java , le tester. Langage Java Schéma à retenir : if (condition) // si la condition est vraie { plusieurs instructions ; } else // si la condition est fausse { plusieurs instructions ; } La partie else peut être absente . Remarque : des structures if-else peuvent être imbriquées Ex 8 : . Ecrire 1 programme qui demande votre note entre 0 et 20 et affiche la note avec 1 commentaire : mention Très Bien si 16 ou plus , mention Bien si 14 ou plus, mention Passable si 12 ou plus, Admis si 10 ou plus , Refusé si moins de 10. Pour déterminer 1 relation if-else : 1 bloc else se rapporte toujours au dernier bloc if rencontré, auquel 1 else n’a pas encore été attribué . L’instruction switch (Selon ….) : Synthaxe : switch (valeur) { case etiquette 1 : // 1 ou plusieurs instructions break ; case etiquette 2 : // 1 ou plusieurs instructions break ; …….. default : //1 ou plusieurs instructions } La variable valeur est évaluée ; Le programme cherche l’étiquette correspondant à cette valeur ; Si elle est trouvée , les instructions sont exécutées, jusqu’à rencontrer le mot-clé break ; Si elle n’est pas trouvée , les instructions de default sont exécutées . La variable valeur peut être du type char, int, byte, short , long ou String . Ex 9 : écrire 1 programme qui demande le No du mois de l’année , qui répond en affichant le nom du mois et son nombre de jours ( années bissextiles exclues …..) . 4] Les instructions break et continue Elles modifient le comportement des boucles . 41) break Exécuter le programme : void main() { int n = 0; while (n < 10) { println("Bonjour à tous !"); n = n + 1; } } Puis, ajouter la ligne if(n= = 4) { break;} après n = n +1 ; exécuter . Rôle de break ? 42) continue Exécuter le programme : void main() { int n; for (n = 0; n < 10; n = n + 1) { println("Hello World!"); } } Puis , ajouter la ligne if(n = = 5 || n = = 6) {continue;} avant println("Hello World!"); exécuter . Rôle de continue ?