You are on page 1of 4

Expression et Oprateurs

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 mme type que la
variable.

Une expression peut tre simplement une valeur littrale:


4
3.14

ou une formule qui met en oeuvre des oprateurs:


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

Les valeurs littrales et leurs types


1 est de type int;
Oprateurs
1.0 est de type double;
On dispose des 4 oprateurs 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 plutt que 1. puisque + pour laddition;
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 2103, cest-- - pour la soustraction; int, il s'agit de la division entire.
dire 2000. Par exemple:
De faon gnrale: aeb vaut a10b. Par exemple:
* pour la multiplication; 1 / 2 vaut 0
double x = 1.3e3; 5 / 2 vaut 2
x vaut 1.3103 = 1.3 1000 = 1300
/ pour la division. mais
double y = 1.3e-3; 1 / 2.0 vaut bien 0.5
y vaut 1.310-3 = 1.3 0.001 = 0.0013

1
On dispose aussi des oprateurs += , -= , *= , /= Oprateurs relatifs au type int
Par exemple: Dans le cas des int, il existe aussi:

a += 5; un oprateur modulo, not %, qui renvoie le reste de la division entire:


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
...

Oprateurs relatifs au type int Affectation dune valeur dcimale


Dans le cas des int, il existe aussi: une variable entire
En Java, il est impossible d'affecter une valeur dcimale par exemple de
deux oprateurs nots ++ et --, qui permettent respectivement type double une variable de type int:
dincrmenter et de dcrmenter, cest--dire dajouter et de soustraire 1
une variable. Exemple:
double x = 1.5;
Par exemple, linstruction: 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 oprateurs sont souvent utiliss avec linstruction for, que nous ^
verrons par la suite. required: int
found: double

2
Affectation dune valeur entire La division entire
une variable dcimale
En revanche, il est possible d'affecter une valeur de type int une variable
de type dcimale, par exemple double.

Exemple: double x;
l'expression 1 / 2 est d'abord value
int n = 3;
x = 1 / 2; elle vaut 0
double x = 2 * n;
0 la valeur 0 est affecte x

0.0

La division entire La division entire


Le problme peut se poser par exemple quand on calcule la moyenne de deux
valeurs entires: 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 mathmatiques
Java fournit les fonction mathmatiques usuelles, ainsi que des constantes comme Pi.
Fonctions mathmatiques
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 degrs
} angle en radians =
180

You might also like