Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Instructions en Java
instruction 1;
instruction 2;
instruction 3;
...
Exemples
System.out.println("Salutations !");
▪ Java se réserve une liste de mots-clés, que l’on ne peut pas utiliser pour
des identificateurs dans notre code.
En voici une liste
Exemples
int nombre1;
double totalFacture;
String monNom;
boolean estFumeur;
Affectation simple
nomVariable = valeur;
nomVariable = expression;
Exemples
nombre1 = 3;
rabais = 0.32;
leGagnant = "Robert C.";
nombre1 = 3 + 3 * 43;
totalFacture = totalFacture * 0.97;
estMajeur = (age >= 18);
Opérateurs arithmétiques
▪ Les expressions mathématiques sont construites avec des opérateurs et des
opérandes. Dans l’expression x + y, x et y sont des opérandes, + est
l’opérateur.
▪ Quelques-uns des opérateurs de base
+ addition
- soustraction
* multiplication
/ division
Dès lors qu’un opérande est un nombre réel, fait un calcul « exact » : 17.0 / 3.0
vaut 5.66666666
Lorsque les opérandes sont toutes deux des entiers, tronque le résultat : 17 / 3
donne 5
% modulo
Donne le reste de la division
17 % 4 donne 1
4 % 17 donne 4
Entrées
Ici, il y a des lignes « magiques » qu’il faut ajouter au programme. Vous les
éluciderez par la suite.
Pour préparer la lecture, il faut modifier son programme pour qu’il ressemble
au squelette de programme suivant, où les instructions importantes sont
marquées comme ceci.
/*
* Commentaire d'en-tête
*/
package nomdupackage;
import java.io.*;
/**
*
* @author FG
*/
public class NomClasse
{
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException
{
BufferedReader r = new BufferedReader(new InputStreamReader
(System.in));
reste du programme
}
Il est ensuite possible d’ajouter les instructions de lecture au clavier après ces
modifications.
nomVariable = r.readLine();
nomVariable = Integer.parseInt(r.readLine());
nomVariable = Double.parseDouble(r.readLine());
Sorties
Les sorties sont plus simples.
Énoncés de sélection
Il y en a trois formes.
Exemples
if (montantFacture >= 100.0)
{
System.out.println("Votre facture excède 100,00 $");
rabais = 0.25 * 100.0;
}
else if (montantFacture < 10.0)
{
System.out.println("Pas de rabais aujourd’hui!");
}
else
{
System.out.println("Votre facture est entre 10,00 et
100,00 $");
rabais = 0.15 * 100.0;
}
Opérateurs relationnels
Les conditions vues jusqu’à présent s’expriment souvent à l’aide d’opérateurs
relationnels, qui servent à comparer des valeurs entre elles.
< plus petit que
== égal à
Exemples
if (montantFacture > 100.0)
{
…
}
if (agePatient == 18)
{
…
}
Les commentaires
Les commentaires servent à documenter le code, c’est-à-dire à ajouter des
notes pour l’expliquer.
Exemples
/*
* Ce commentaire respecte nos normes de programmation. Les
étoiles
* à gauche sont alignées verticalement.
*/
int age = 0; // l’âge du capitaine
double facture = 133.0; // la facture du capitaine
String leNom = "Haddock"; // le nom du capitaine
/*
* Ce test nous permet de savoir si la température mesurée
* dépasse le seuil permis par notre système de sécurité.
*/
if (temperature > 120.0)
{
System.out.println("Attention : température dangereuse");
}
else
{
System.out.println("Tout baigne");
}
Les constantes
Les constantes sont des variables spéciales dont on empêche le changement de
valeur durant l’exécution d’un programme. Leur valeur est donc en lecture
seulement.
Exemples
final double PI = 3.1416;
final double TEMP_CONGELATION = 0.0;
final String VERSION_PROGRAMME = "1.0";
final double TAXE_PROVINCIALE = 1.07;
final char YES = 'Y';
Exemples
if (!condition)
{
System.out.println("La condition est fausse");
}
1. La négation : !
2. Le ET : &&
3. Le OU : ||
Exemples
if (a == 3 || b > 3 && !(c < 4))
{
...
}
Exemples
if (prenom.equals("Roger"))
{
System.out.println("Bonjour Roger");
}
else
{
System.out.println("Vous ne vous appelez pas Roger");
}
▪ La condition (appelée aussi test) est entre parenthèses. Ce peut être une
condition simple ou composée.
▪ Il n’y a pas de point-virgule à la fin de la première ligne.
▪ La condition doit être vraie pour que le bloc d’instructions soit exécuté.
▪ Le bloc d’instructions sera exécuté aussi longtemps que la condition
demeure vraie. Attention : Vous assurer que la condition devient fausse
sinon vous aurez une boucle infinie.
▪ Si la condition est fausse dès le début, le bloc d’instruction ne sera pas
exécuté et le programme continuera à l’instruction qui suit l’accolade
fermante.
▪ Le bloc d’instructions est délimité par des accolades ({ }), situées une au-
dessus de l’autre
▪ Le bloc d’instructions entre accolades est en retrait (il y a du blanc avant)
par rapport à l’énoncé qui précède.
Exemples
int i = 3;
while (i > 0)
{
i = i - 1;
System.out.println("i vaut " + i);
}
Opérateurs préfixés ++ et --
Il arrive fréquemment qu’on ait à incrémenter (ajouter 1) ou décrémenter
(soustraire 1) à une variable, comme on l’a vu à l’exemple précédent.
Exemple
On peut transformer ceci
int nbValeurs = 0;
nbValeurs = nbValeurs + 1;
nbValeurs = nbValeurs - 1;
en ceci
int nbValeurs = 0;
++nbValeurs;
--nbValeurs;
Affectation composée
Il existe un raccourci en Java pour combiner une affectation et la modification
d’une variable donnée.
Au lieu d’écrire… On peut écrire…
variable = variable + variable += expression;
expression;
variable = variable – variable -= expression;
expression;
variable = variable * variable *= expression;
expression;
variable = variable / variable /= expression;
expression;
variable = variable % variable %= expression;
expression;
Exemples
On peut transformer ceci
nombre = nombre * 2;
en ceci
nombre *= 2;
ou encore
Poser une question tant que l’utilisateur entre une valeur prédéfinie pour
arrêter
Exemple avec une valeur de 0 pour arrêter le programme
System.out.println("Entrez une valeur (0 pour arrêter)");
valeur = Integer.parseInt(r.readLine());
while (valeur != 0)
{
// faire quelque chose avec valeur
System.out.println("Entrez une valeur (0 pour
arrêter)");
valeur = Integer.parseInt(r.readLine());
}
do
{
System.out.println("Entrez un nombre plus grand que 0");
i = Integer.parseInt(r.readLine());
}
while (i <= 0);
Instruction switch
L’instruction switch permet de choisir un cas particulier selon la valeur d’une
expression de type entier.
switch (expression) ▪ L’expression doit être de type
{ entier.
case valeur1:
instructions; ▪ Lorsqu’un cas (case) égal à
break; expression est trouvé, il entraîne
case valeur2: l’exécution du bloc d’instructions
instructions; du case, jusqu’au break
break;
// autres valeurs
▪ Le cas par défaut « default » est
default: exécuté si aucun cas ne correspond
instructions; à la valeur de expression.
break;
}
Exemple
int noJour = 2;
String nomJour = "";
switch (noJour)
{
case 1:
nomJour = "lundi";
break;
case 2:
nomJour = "mardi";
break;
case 3:
nomJour = "mercredi";
break;
case 4:
nomJour = "jeudi";
break;
case 5:
nomJour = "vendredi";
break;
case 6:
nomJour = "samedi";
break;
case 7:
nomJour = "dimanche";
break;
default:
nomJour = "inconnu";
break;
}
Variables booléennes
Le type de variable boolean permet de stocker une valeur « vrai » (true) ou
« faux » (false) dans une variable.
// déclaration et initialisation de la variable maVariable à false
boolean maVariable = false;
Exemple
boolean estFumeur = false;
boolean estMajeur = false;
int age = 19;
estFumeur = true;
estMajeur = (age >= 18);
Énoncé for
L’énoncé for fournit une façon
claire et compacte de balayer un
intervalle de valeurs.
On peut faire encore plus avec cette
instruction, mais elle est
habituellement utilisée pour le
balayage d’un intervalle.
Elle s’exécute un nombre déterminé
de fois, que l’on peut facilement
trouver en regardant la première
ligne la boucle for.
for (initialisation;
condition; changement)
{
instructions;
}
Exemples
// afficher les nombres de 0 à 99
for (int i = 0; i < 100; ++i)
{
System.out.println(i);
}
Pour les tableaux de Strings, les éléments du tableau contiennent une valeur
spéciale appelée null, qu’il vaut mieux ne pas manipuler. Il faut alors
initialiser « à la mitaine » tous les éléments du tableau de Strings.
On peut également déclarer et initialiser un tableau avec une liste d’éléments
séparés par des virgules.
Exemple
double[] tabSalaires = { 76.12, 34.3, tableau à 4
31.3, 88.3 }; éléments
Accès aux éléments du tableau Pour accéder au contenu du tableau, on utilise
le nom de la variable du tableau et un indice pour spécifier l’élément auquel
on veut accéder.
varTableau accès à un élément du tableau, dont l’indice est
[indice] indice
Exemple
boolean[] tabBooleens = new boolean[23];
// Ceci devrait afficher une taille de 23...
System.out.println("Taille de mon tableau = " +
tabBooleens.length);
Normes de programmation
Il n’y a pas d’espace autour des crochets des tableaux (p.ex. : tabSalaires
[i]).
La taille d’un tableau est souvent une constante, lorsqu’on connaît d’avance la
longueur du tableau.
Exemple : décompte de chaque type de voyelles dans un mot
final int NB_VOYELLES = 6;
final int INDICE_A = 0;
final int INDICE_E = 1;
final int INDICE_I = 2;
final int INDICE_O = 3;
final int INDICE_U = 4;
final int INDICE_Y = 5;
// ...
À cause de ceci, il est même possible de faire un switch sur une variable de
type char.
Exemple
char maLettre = 'a'; Un switch est possible, puisque
switch (maLettre) celui-ci ne fonctionne que sur
{ les variables de type entier. Or,
case 'a': un char est un proche parent d’un
++nbVoyelles; entier, ce qui fait que ça
break; fonctionne !
case 'b':
...
Exemples
String chaine = "Cobalt 60";
String minuscule = chaine.toLowerCase(); // cobalt 60
String majuscule = chaine.toUpperCase(); // COBALT 60
/*
* notez que chaine et chaine2 n'ont pas changé de valeur
* elles valent toujours "Cobalt 60" et "Carbone 14"
respectivement
*/
if (sontEgales)
{
System.out.println("Les deux chaînes sont identiques
!");
}
Exemples
String w = "Hal 9000";
int positionDuAl = w.indexOf("al"); // retourne 1
if (w.indexOf("rouge") == -1)
System.out.println("Pas de rouge dans cette chaîne");
Note : Il existe quantité d’opérations qui peuvent être effectuées sur une
variable de type String. Vous pouvez les consulter sur le site de Sun
expliquant tout le langage Java, à l’URL
http://java.sun.com/javase/6/docs/api/java/lang/String.html
De plus, vous avez
constaté que NetBeans
vous offre des
suggestions
documentées lorsque
vous tapez le point à la
suite d’une variable de
type chaîne. Explorez !
Lecture et écriture des fichiers
Les fichiers
Les fichiers permettent d’enregistrer l’information de façon persistante (c’est-
à-dire qu’ils conservent l’information même après que le programme s’est
terminé).
▪ Il y a deux types de fichiers
o les fichiers texte (comme ceux du Bloc-notes de Windows)
o les fichiers binaires (les images bitmap, les fichiers Word, etc. qui
ne contiennent pas seulement du texte)
▪ Dans notre cours, nous voyons l’accès séquentiel (« sequential access »)
sur des fichiers texte.
o on lit le fichier ligne par ligne, du début à la fin
o on écrit dans le fichier ligne par ligne
Instructions de lecture
package nomdupackage;
import java.io.*;
/**
* @author LeProf
*/
public class NomClasse
{
}
Note : lorsque le nom du fichier ne contient pas le nom du répertoire, p.ex.
String nomFichier = "lenomdufichier.txt";
alors, le fichier est trouvé dans le répertoire du projet NetBeans.
Instructions d’écriture
package nomdupackage;
import java.io.*;
/**
* @author LeProf
*/
public class NomClasse
{
createurFichier.println("allô !");
createurFichier.println("comment allez" + "-vous ?");
createurFichier.println(ligne);
createurFichier.close();
}
Nombres aléatoires
Les nombres aléatoires sont des nombres « tirés au hasard ».
Ils sont très utiles dans les jeux. Par exemple, dans le jeu de cartes Solitaire, ce
sont des nombres aléatoires qui déterminent l’ordre des cartes qui vont être
jouées. Java peut générer des nombres aléatoires.
package nomdupackage;
import java.util.Random;
/*
* La ligne suivante tire au hasard un nombre entier entre 0
(inclus)
* et 32 (exclu). 32 pourrait être une constante, dans vos
programmes.
*/
int nbAleatoire = generateur.nextInt(32);