Vous êtes sur la page 1sur 27

class HelloW

orld {

Introduction
public static
void
System.out.p main(String[] args)
rintln("Hello {
} world");

1
class HelloW
orld {
public static
void
System.out.p main(String[] args)
rintln("Hello {
} world");

001001010100010010010
101010100101001010010
101010101010010010010
101001000101001011000

CAFEBABE00000032001D0A0006000F09 . . . . . . . 2 . . . . . . . .
000010 001000110800120A0013001407001507 . . . . . . . . . . . . . . . .
000020 00160100063C696E69743E0100032829 . . . . . < i n i t > . . . ( )
000030 56010004436F646501000F4C696E654E V . . . C o d e . . . L i n e N

compilateur
000040 756D6265725461626C650100046D6169 u m b e r t a b l e . . . m a i
000050 6E010016285B4C6A6176612F6C616E67 n . . . ( [ L j a v a / l a n g
000060 2F537472696E673B295601000A536F75 / S t r i n g ; ) V . . . S o u
000070 72636546696C6501000F48656C6C6F57 r c e F i l e . . . H e l l o w
000080 6F726C642E6A6176610C000700080700 o r l d . j a v a . . . . . .
000090 170C0018001901000B48656C6C6F2077 . . . . . . . . . H e l l o w
0000A0 6F726C6407001A0C001B001C01000A48 o r l d . . . . . . . . . . . H
0000B0 656C6C6F576F726C640100106A617661 e l l o w o r l d . . . j a v a
0000C0 2F6C616E672F4F626A6563740100106A / l a n g / O b j e c t . . . j
0000D0 6176612F6C616E672F53797374656D01 a v a / l a n g / S y s t e m .
0000E0 00036F75740100154C6A6176612F696F . . o u t . . . L j a v a / i o
0000F0 2F5072696E7453747265616D3B010013 / P r i n t S t r e a m ; . . .
000100 6A6176612F696F2F5072696E74537472 j a v a / i o / P r i n t S t r
000110 65616D0100077072696E746C6E010015 e a m . . . p r i n t l n . . .
000120 284C6A6176612F6C616E672F53747269 ( L j a v a / l a n g / S t r i
000130 6E673B29560021000500060000000000 n g , ) V . ! . . . . . . . . .

class HelloW
orld {
bytecode class HelloW
orld {
public static public static
void void

machine
System.out.p main(String[] args) System.out.p main(String[] args)
rintln("Hello { rintln("Hello {
} world"); } world");

virtuelle
001001010100010010010
101010100101001010010
101010101010010010010
101001000101001011000

2
réfléchir au problème; réfléchir au problème;
concevoir la séquence d'instructions concevoir la séquence d'instructions

? class HelloW
orld {
public static
void
System.out.p main(String[] args)
rintln("Hello {
} world");

écrire un programme Java à


Erreurs à la compilation:
partir de cette réflexion
le programme source ne respecte
pas les règles du langage Java

compiler le programme Java


pour créer un programme en
bytecode

réfléchir au problème; réfléchir au problème;


concevoir la séquence d'instructions concevoir la séquence d'instructions

Erreurs à l'exécution:
class HelloW
orld {
public static
le programme a été mal conçu class HelloW
orld {
public static
void void
System.out.p main(String[] args) System.out.p main(String[] args)
rintln("Hello { rintln("Hello {
} world");
tester le programme sur la } world");
tester le programme sur la
machine virtuelle machine virtuelle

écrire un programme Java à écrire un programme Java à


partir de cette réflexion partir de cette réflexion

compiler le programme Java compiler le programme Java


pour créer un programme en pour créer un programme en
bytecode bytecode

3
Une variable possède 3 caractéristiques:
•  Son identificateur, qui est le nom par lequel la donnée

Les variables est désignée;


•  Son type, qui définit de quel « genre » est la donnée
contenue dans la variable;
•  Sa valeur. Par exemple, si la donnée est un nombre, sa
valeur pourra être 123 ou 3.14 n

123

class ExempleVariable Déclarations de variables


{
public static void main(String[] args) Les lignes:
{
int n = 4;
type de la variable identificateur, ou nom, de la variable.
int nCarre; Il est choisi par le programmeur et permet de
nCarre = n * n; référer la variable créée

System.out.println("La variable n contient " + n);


int n = 4;
System.out.println("Le carre de " + n + " est " + nCarre + "."); int nCarre;
System.out.println("Le double de n est " + 2 * n + ".");
}
} sont des déclarations de variables.

Une déclaration de variable permet de créer une variable.

1
Initialisation Initialisation
Une variable non initialisée ne peut être utilisée.
En même temps qu'elle est déclarée, une variable peut être initialisée, c'est-à-
dire lui donner une valeur avant de l'utiliser.
Par exemple:
La ligne: n nCarre
int nCarre;
System.out.println(nCarre);
int n = 4; 4 ?
donne une erreur à la compilation:
déclare donc une variable appelée n et lui donne la valeur 4.
variable nCarre might not have been initialized
System.out.println(nCarre);

type pour les valeurs entières: la variable n


n nCarre ne peut contenir que des valeurs entières

4 ? int n = 4;
int n = 4; double x = 1.0; n x
int nCarre;
type pour les valeurs décimales:
la variable x ne peut contenir que 4 1.0
des valeurs décimales

2
Déclaration de variables Déclaration de variables
De façon générale, une déclaration de variable suit le schéma: D'autres exemples de déclaration:

int m = 1;
type identificateur = valeur_initiale; on peut déclarer plusieurs variables
int p = 1, q = 0;
simultanément.
double x = 0.1, y; Ne pas en abuser
ou éventuellement:
N'oubliez pas le point-virgule ; à la fin

type identificateur;

Une fois défini, le type de la variable ne peut plus changer.

Noms de variables Conventions en Java


Règles pour nommer les variables: pour les noms de variables
–  Le nom peut être constitué uniquement de lettres, de chiffres, et des deux seuls
symboles autorisés: _ (underscore) et $. Pas d’espace ! En Java, bien que ce ne soit pas requis par le compilateur, la convention est d'écrire le
–  Le premier caractère est nécessairement une lettre ou un symbole; nom des variables en commençant par une minuscule, et commencer les mots suivants
par une majuscule.
–  Le nom ne doit pas être un mot-clé réservé par le langage Java;
–  Les majuscules et les minuscules sont autorisées mais ne sont pas équivalentes. Par exemple, on utilisera
Les noms ligne et Ligne désignent deux variables différentes.
nombreDePoints
Exemples de noms valides:
nCarre Total sousTotal98
plutôt que
Exemples de noms invalides: NombreDePoints
ou
n carre Contient des espaces; 1element Commence par un chiffre.
nombre_de_points
n-carre Contient le symbole – (moins);

3
Types de variables Affectations
La ligne:
Les principaux types élémentaires sont:

–  int, pour les valeurs entières (pour integer, entiers en anglais); nCarre = n * n;
–  double, pour les nombres à virgule, par exemple 0.5
est une affectation.
et aussi:
Attention, ce n'est pas une égalité mathématique: Une affectation est
–  float: aussi pour les nombres à virgule, moins précises mais occupant une instruction qui permet de changer une valeur à une variable.
moins de mémoire que les doubles;
–  char: pour les caractères (A..Z etc.);
–  …

Affectations Affectations
L'exécution d’une affectation se décompose en deux temps : L'exécution d’une affectation se décompose en deux temps :

1 L'expression à droite du signe = est évaluée:


n * n est évaluée avec la valeur de n au moment de l’exécution.
L’étoile * représente la multiplication, n * n vaut donc 4 × 4 = 16

16 nCarre n
16 nCarre n

nCarre = n * n; ? 4 2 nCarre = n * n; ?
16 4
la valeur de l’expression est stockée dans la variable
à gauche du signe =
L’ancienne valeur de nCarre est perdue.

4
Affectations
De façon plus générale, une affectation suit le schéma: Attention: Ne confondez pas une affectation avec une égalité mathématique.

nom_de_variable = expression;
Toutes les deux utilisent le signe égal =, mais l'affectation est un mécanisme
dynamique.
N'oubliez pas le point-virgule ; à la fin
Une expression calcule une valeur, qui doit être de même type que la
Par exemple, les deux instructions:
variable.
Exemples d'expression: copie la valeur de b dans a
a = b;
•  4
b = a; copie la valeur de a dans b
•  n * n
•  n * (n + 1) + 3 * n – 2
ne sont pas identiques.
Nous reviendrons sur les expressions un peu plus loin.

En mathématiques:
On peut écrire aussi des affectations telles que:
b=a+1
a = a + 1;
signifie que tout au long des calculs, a et b vérifieront toujours cette relation.
Autrement dit, quel que soit a, b sera toujours égal à a+1
Ce type d’affectation, où une variable apparaît de chaque côté du signe =
permet de résoudre de nombreux problèmes.

En Java:
Cette affectation signifie:
a = 5;
« calculer l’expression de a + 1 et ranger le résultat dans a. Cela revient à
b = a + 1; donne à b la valeur de a+1, c’est-à-dire 6. augmenter de 1 la valeur de a »
a = 2; Nous reviendrons sur ce point dans la suite.
donne à a la valeur 2, sans que b ne soit modifiée!
b contient donc toujours 6.

5
Déclaration de constantes
Il peut arriver que la valeur d'une variable ne doive pas changer après
l'initialisation. Dans ce cas, il faut ajouter le mot-clé final devant la déclaration:

final type identificateur = valeur_initiale;

Par exemple:

final double VITESSE_DE_LA_LUMIERE = 299792.458;

Dans ce cas, on ne peut plus modifier la variable:

VITESSE_DE_LA_LUMIERE = 100; // erreur !

6
Pour écrire à l’écran
affiche la valeur de la variable n
fonction d'affichage
Les variables : sur le terminal
(et non pas la lettre n)

lecture / écriture ce qui est entre guillemets


(") est affiché littéralement

System.out.println("La variable n contient " + n + ".");

affiche: les différents éléments à


afficher doivent être
La variable n contient 4.
séparés par le symbole +

Pour écrire à l’écran


On peut afficher uniquement la valeur d'une variable en faisant simplement:
affiche la valeur de la variable n
fonction d'affichage (et non pas la lettre n) System.out.println(n);
sur le terminal
n

ce qui est entre guillemets On peut aussi afficher la valeur d'une expression: 4
(") est affiché littéralement
System.out.println("Le double de " + n + " est " + 2 * n + ".");

System.out.println("La variable n contient " + n + "."); expression


affiche: System.out.println fait un "retour à la ligne": le prochain Attention, si on veut afficher une somme:
la fonction
affichage se fera sur la ligne suivante de la fenêtre Terminal. System.out.println("n plus nCarre = " + (n + nCarre));
La variable n contient 4.
Il existe une variante qui ne fait pas de retour à la ligne: System.out.print il faut ajouter des parenthèses pour éviter une ambiguité.

1
Déroulement du programme pas-à-pas n

int n = 4;
int nCarre;
int n = 4;
int nCarre;
4
nCarre = n * n; nCarre = n * n;

System.out.println("La variable n contient " + n); System.out.println("La variable n contient " + n);
System.out.println("Le carre de " + n + " est " + nCarre + "."); System.out.println("Le carre de " + n + " est " + nCarre + ".");
System.out.println("Le double de n est " + 2 * n + "."); System.out.println("Le double de n est " + 2 * n + ".");

Ce qui s'affiche : Ce qui s'affiche :


▌ ▌

n nCarre n nCarre

int n = 4;
int nCarre;
4 ? int n = 4;
int nCarre;
4 ?
nCarre = n * n; nCarre = n * n;

System.out.println("La variable n contient " + n); System.out.println("La variable n contient " + n);
System.out.println("Le carre de " + n + " est " + nCarre + "."); System.out.println("Le carre de " + n + " est " + nCarre + ".");
System.out.println("Le double de n est " + 2 * n + "."); System.out.println("Le double de n est " + 2 * n + ".");

Ce qui s'affiche : Ce qui s'affiche :


▌ ▌

2
n nCarre n nCarre

int n = 4;
int nCarre;
4 16 int n = 4;
int nCarre;
4 16
nCarre = n * n; nCarre = n * n;

System.out.println("La variable n contient " + n); System.out.println("La variable n contient " + n);
System.out.println("Le carre de " + n + " est " + nCarre + "."); System.out.println("Le carre de " + n + " est " + nCarre + ".");
System.out.println("Le double de n est " + 2 * n + "."); System.out.println("Le double de n est " + 2 * n + ".");

Ce qui s'affiche : Ce qui s'affiche :


▌ ▌

n nCarre n nCarre

int n = 4;
int nCarre;
4 16 int n = 4;
int nCarre;
4 16
nCarre = n * n; nCarre = n * n;

System.out.println("La variable n contient " + n); System.out.println("La variable n contient " + n);
System.out.println("Le carre de " + n + " est " + nCarre + "."); System.out.println("Le carre de " + n + " est " + nCarre + ".");
System.out.println("Le double de n est " + 2 * n + "."); System.out.println("Le double de n est " + 2 * n + ".");

Ce qui s'affiche : Ce qui s'affiche :


La variable n contient 4. La variable n contient 4.
▌ Le carre de 4 est 16.

3
n nCarre Qu’affiche ce programme ?
int a = 2;
int n = 4;
int nCarre;
4 16 int b = 1;

b = a * (b + 2);
nCarre = n * n;
System.out.println(a + ", " + b);
System.out.println("La variable n contient " + n);
System.out.println("Le carre de " + n + " est " + nCarre + ".");
System.out.println("Le double de n est " + 2 * n + ".");

A: a, b

?
Ce qui s'affiche :
La variable n contient 4. B: 1, 2
Le carre de 4 est 16.
Le double de n est 8.
C: 2, 1
▌ D: 2, 6

int a = 2; int a = 2;
int b = 1; int b = 1;

b = a * (b + 2); b = a * (b + 2);

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

a a b

2 2 1

4
int a = 2; int a = 2;
int b = 1; int b 2=* (1
1;+ 2) = 2 * 3 = 6

b = a * (b + 2); b = a * (b + 2);

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

a b a b

2 1 2 1

int a = 2; int a = 2;
int b 2=* (1
1;+ 2) = 2 * 3 = 6 int b = 1;

b = a * (b + 2); b = a * (b + 2);

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

a b a b

2 6 2 6
Affiche:
2, 6

5
Qu’affiche ce programme ?
int a = 5; int a = 5;
int b = a + 3; int b = a + 3;

a = 1; a = 1;

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

A: 5, 4 a

B: 1,
C: 1,
1
4 ? 5
D: 1, 8

int a = 5; int a = 5;
int b = a + 3; int b = a + 3;

a = 1; 5 + 3 = 8 a = 1;

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

a b a b

5 8 5 8

6
int a = 5; int a = 5;
int b = a + 3; int b = a + 3;

a = 1; a = 1;

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

a b a b

1 8 Affiche: 1 8
1, 8

Qu’affiche ce programme ?
int a = 1; int a = 1;
int b = 2; int b = 2;

a = b; a = b;
b = a; b = a;

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

A: 1, 1

?
a
B: 1, 2
C: 2, 1 1
D: 2, 2

7
int a = 1; int a = 1;
int b = 2; int b = 2;

a = b; a = b;
b = a; b = a;

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

a b a b

1 2 1 2

int a = 1; int a = 1;
int b = 2; int b = 2;

a = b; a = b;
b = a; b = a;

System.out.println(a + ", " + b); System.out.println(a + ", " + b);

a b a b

2 2 2 2

8
Supposons qu'on ait déclaré et initialisé deux variables a et b.

int a = 1; Comment échanger leurs valeurs ?


int b = 2;
Les instructions:
a = b;
a = b; b = a;
b = a; ne marchent pas, comme le montre l’exercice précédent.

System.out.println(a + ", " + b);


Solution: utiliser une variable intermédiaire:

int a = 1;
a b int b = 2;
int temp = a;
Affiche:
2, 2 2 2 a = b;
b = temp;

a b a b temp

1 2 1 2 1

int a = 1; int a = 1;
int b = 2; int b = 2;
int temp = a; int temp = a;

a = b; a = b;
b = temp; b = temp;

9
a b temp a b temp

1 2 1 2 2 1

int a = 1; int a = 1;
int b = 2; int b = 2;
int temp = a; int temp = a;

a = b; a = b;
b = temp; b = temp;

a b temp a b temp

2 2 1 2 1 1

int a = 1; int a = 1;
int b = 2; int b = 2;
int temp = a; int temp = a;

a = b; a = b;
b = temp; b = temp;

10
import java.util.Scanner;

class ExempleVariable class DemanderVariable


{ {
public static void main(String[] args) public static void main(String [] args)
{ {
int n = 4; Scanner keyb = new Scanner(System.in);
int nCarre; System.out.println("Entrez une valeur pour n");
int n = keyb.nextInt();
nCarre = n * n;
int nCarre = n * n;
System.out.println("La variable n contient " + n);
System.out.println("Le carre de " + n + " est " + nCarre + "."); System.out.println("La variable n contient " + n);
System.out.println("Le double de n est " + 2 * n + "."); System.out.println("Le carre de " + n + " est " + nCarre + ".");
} System.out.println("Le double de n est " + 2 * n + ".");
} }
}

Lire une valeur au clavier


Lire une valeur au clavier
Il faut d'abord importer la classe Scanner pour la rendre visible au compilateur:
import java.util.Scanner; int n = keyb.nextInt();

On peut maintenant créer un objet Scanner, par exemple: Cette instruction


Scanner keyb = new Scanner(System.in); 1. Arrête le programme momentanément;
2. Attend que l'utilisateur entre une valeur au clavier et appuie sur la touche return;
keyb est une variable qu'on peut utiliser pour demander des valeurs au clavier. 3. Affecte la valeur entrée par l'utilisateur à la variable n,
Par exemple: puis le programme continue.
int n = keyb.nextInt();
nextInt() est une méthode de l'objet Scanner. Il existe une autre méthode pour
demander une valeur de type double:
double x = keyb.nextDouble();

11
Déroulement du programme pas-à-pas Déroulement du programme pas-à-pas
Scanner keyb = new Scanner(System.in); Scanner keyb = new Scanner(System.in);
System.out.println("Entrez une valeur pour n"); System.out.println("Entrez une valeur pour n");
int n = keyb.nextInt(); int n = keyb.nextInt();

int nCarre = n * n; int nCarre = n * n;

System.out.println("La variable n contient " + n); System.out.println("La variable n contient " + n);

keyb

Ce qui s'affiche: Ce qui s'affiche:


▌ ▌

Déroulement du programme pas-à-pas Déroulement du programme pas-à-pas


Scanner keyb = new Scanner(System.in); Scanner keyb = new Scanner(System.in);
System.out.println("Entrez une valeur pour n"); System.out.println("Entrez une valeur pour n");
int n = keyb.nextInt(); int n = keyb.nextInt();

int nCarre = n * n; int nCarre = n * n;

System.out.println("La variable n contient " + n); System.out.println("La variable n contient " + n);

keyb keyb

Ce qui s'affiche: Ce qui s'affiche: supposons que l’utilisateur entre la


Entrez une valeur pour n Entrez une valeur pour n valeur 2 au clavier (il faut presser
▌ 2 return une fois la valeur tapée)

12
Déroulement du programme pas-à-pas Déroulement du programme pas-à-pas
Scanner keyb = new Scanner(System.in); Scanner keyb = new Scanner(System.in);
System.out.println("Entrez une valeur pour n"); n System.out.println("Entrez une valeur pour n"); n
int n = keyb.nextInt(); int n = keyb.nextInt();

int nCarre = n * n;
2 int nCarre = n * n;
2
System.out.println("La variable n contient " + n); System.out.println("La variable n contient " + n);

keyb keyb nCarre

4
Ce qui s'affiche: Ce qui s'affiche:
Entrez une valeur pour n Entrez une valeur pour n
2 2
▌ ▌

Déroulement du programme pas-à-pas


Scanner keyb = new Scanner(System.in);
Lecture d'une ligne complète
System.out.println("Entrez une valeur pour n"); n
int n = keyb.nextInt(); Scanner keyb = new Scanner(System.in);
int nCarre = n * n;
2 String s = keyb.nextLine();
System.out.println("Vous avez saisi : " + s);
System.out.println("La variable n contient " + n);
s est une chaine de caractères. Après l'exécution de l'instruction:
keyb nCarre
String s = keyb.nextLine();
4
Ce qui s'affiche: s contient tous les caractères tapés par l'utilisateur, jusqu'à l'appui de return.
Entrez une valeur pour n
2
La variable n contient 2

13
Attention avec nextLine() !
int i = keyb.nextInt();
String s1 = keyb.nextLine();
String s2 = keyb.nextLine();

Si on tape:
25 francs
23 francs
è i contient 25, s1 contient francs, s2 contient 23 francs

Si on tape:
14
euros
43
è i contient 14, s1 est vide, s2 contient euros !

car nextLine() lit ce qui suit 14 jusqu'à la fin de la ligne, c'est-à-dire rien !

14
Expression et Opérateurs
A droite du signe égal dans une affectation se trouve une expression:

Expressions nom_de_variable = expression;

Une expression calcule une valeur, qui doit être de même type que la
variable.

Une expression peut être simplement une valeur littérale:


4
3.14

ou une formule qui met en oeuvre des opérateurs:


n * n
n * (n + 1) + 3 * n - 2

Les valeurs littérales et leurs types


•  1 est de type int;
Opérateurs
•  1.0 est de type double;
On dispose des 4 opérateurs usuels:
•  1. est équivalent à 1.0, et donc de type double. On peut écrire:
double x = 1.;
au lieu de Il vaut mieux écrire 1.0 plutôt que 1. puisque + pour l’addition;
double x = 1.0; c'est plus lisible Attention: si la division se fait entre
•  On peut utiliser la notation scientifique, par exemple écrire 2e3 pour 2×103, c’est-à- - pour la soustraction; int, il s'agit de la division entière.
dire 2000. Par exemple:
De façon générale: aeb vaut a×10b. Par exemple:
* pour la multiplication; 1 / 2 vaut 0
double x = 1.3e3; 5 / 2 vaut 2
à x vaut 1.3×103 = 1.3 × 1000 = 1300
/ pour la division. mais
double y = 1.3e-3; 1 / 2.0 vaut bien 0.5
à y vaut 1.3×10-3 = 1.3 × 0.001 = 0.0013

1
On dispose aussi des opérateurs += , -= , *= , /= Opérateurs relatifs au type int
Par exemple: Dans le cas des int, il existe aussi:

a += 5; •  un opérateur modulo, noté %, qui renvoie le reste de la division entière:


est équivalent à 11 % 4 vaut 3
a = a + 5; (la division de 11 par 4 a pour reste 3 car 11 = 2 * 4 + 3).

0 % 4 vaut 0 car 0 = 0 * 4 + 0
1 % 4 vaut 1 car 1 = 0 * 4 + 1
b *= a; 2 % 4 vaut 2 car 2 = 0 * 4 + 2
est équivalent à 3 % 4 vaut 3 car 3 = 0 * 4 + 3
b = b * a; 4 % 4 vaut 0 car 4 = 1 * 4 + 0
5 % 4 vaut 1 car 5 = 1 * 4 + 1
...

Opérateurs relatifs au type int Affectation d’une valeur décimale à


Dans le cas des int, il existe aussi: une variable entière
En Java, il est impossible d'affecter une valeur décimale par exemple de
•  deux opérateurs notés ++ et --, qui permettent respectivement type double à une variable de type int:
d’incrémenter et de décrémenter, c’est-à-dire d’ajouter et de soustraire 1 à
une variable. Exemple:
double x = 1.5;
Par exemple, l’instruction: int n = 3 * x; // Erreur !!!
++i;
est équivalente à : Le compilateur produit le message d'erreur suivant :
i = i + 1; error: possible loss of precision
n = 3 * x;
Ces deux opérateurs sont souvent utilisés avec l’instruction for, que nous ^
verrons par la suite. required: int
found: double

2
Affectation d’une valeur entière à La division entière
une variable décimale
En revanche, il est possible d'affecter une valeur de type int à une variable
de type décimale, par exemple double.

Exemple: double x;
l'expression 1 / 2 est d'abord évaluée
int n = 3;
x = 1 / 2; elle vaut 0
double x = 2 * n;
0 la valeur 0 est affectée à x

0.0

La division entière La division entière


Le problème peut se poser par exemple quand on calcule la moyenne de deux
valeurs entières: Une solution possible:

int note1 = 4; int note1 = 4;


int note2 = 5; int note2 = 5;

double moyenne = (note1 + note2) / 2; double moyenne = (note1 + note2);


moyenne /= 2;
Dans ce cas, moyenne vaut 4 au lieu de 4.5

3
Fonctions mathématiques
Java fournit les fonction mathématiques usuelles, ainsi que des constantes comme Pi.
Fonctions mathématiques
Ces fonctions et constantes s'utilisent en suivant la notation:

Math.nomFonction(expression1, expression2, ...);


L'ensemble des fonctions disponibles est documenté dans:
Math.nomConstante
http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html
Par exemple:

class ExempleMathematique
{
public static void main(String[] args) {

double angle = 10 * Math.PI / 180;


double s = Math.sin(angle);
}
}

import java.util.Scanner;

class ExempleAngle
{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.println("Entrez un angle en degres: ");


double angleEnDegres = scanner.nextDouble();
double angleEnRadians = Math.PI * angleEnDegres / 180;
System.out.println("Sa valeur en radians est " + angleEnRadians);
System.out.println("Son cosinus vaut " + Math.cos(angleEnRadians));
}
π angle en degrés
} angle en radians =
180

Vous aimerez peut-être aussi