II. - Les Fondamentaux de Java

Documents pareils
Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java


1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Bases de programmation. Cours 5. Structurer les données

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Algorithmique et Programmation, IMA

Plan du cours. Historique du langage Nouveautés de Java 7

Rappels Entrées -Sorties

Notions fondamentales du langage C# Version 1.0

STAGE IREM 0- Premiers pas en Python

Java Licence Professionnelle CISII,

Utilisation d objets : String et ArrayList

ALGORITHMIQUE ET PROGRAMMATION En C

INF 321 : mémento de la syntaxe de Java

TP 1. Prise en main du langage Python

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

SUPPORT DE COURS. Langage C

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Présentation du langage et premières fonctions

Programmer en JAVA. par Tama

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Claude Delannoy. 3 e édition C++

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours d initiation à la programmation en C++ Johann Cuenin

Introduction à l algorithmique et à la programmation M1102 CM n 3

Solutions du chapitre 4

Programmation en langage C

Cours d Algorithmique et de Langage C v 3.0

TP, première séquence d exercices.

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Introduction au langage C

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Les chaînes de caractères

Programmation en Java IUT GEII (MC-II1) 1

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

TD3: tableaux avancées, première classe et chaînes

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

ACTIVITÉ DE PROGRAMMATION

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Introduction au Langage de Programmation C

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

UE C avancé cours 1: introduction et révisions

Le langage C. Introduction, guide de reference

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Tp 1 correction. Structures de données (IF2)

PROGRAMMER EN MQL4. Apprenez à automatiser vos stratégies sur MetaTrader 4

Programme Compte bancaire (code)

UE Programmation Impérative Licence 2ème Année

Conventions d écriture et outils de mise au point

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Algorithmique, Structures de données et langage C

Représentation d un entier en base b

Chap III : Les tableaux

Chapitre I Notions de base et outils de travail

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 10 Arithmétique réelle

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

I. Introduction aux fonctions : les fonctions standards

INITIATION AU LANGAGE JAVA

Chapitre 10. Les interfaces Comparable et Comparator 1

as Architecture des Systèmes d Information

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Le prototype de la fonction main()

Programmation C. J.-F. Lalande. 15 novembre 2012

Java Licence Professionnelle CISII,

TP1 : Initiation à Java et Eclipse

Architecture des ordinateurs

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Algorithmique et programmation : les bases (VBA) Corrigé

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

La mémoire. Un ordinateur. L'octet. Le bit

Principes des langages de programmation INF 321. Eric Goubault

Programmation Classique en langage C

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Les structures. Chapitre 3

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

Initiation à la programmation en Python

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Premiers Pas en Programmation Objet : les Classes et les Objets

Cours 1: Java et les objets

Apprendre Java en 154 minutes

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Programmation impérative

Le langage C. Séance n 4

Cours Programmation Système

Transcription:

II. - Les Fondamentaux de Java Gérald Monard Chimie et Physique informatiques L3 Physique et Chimie

Concepts fondamentaux Un programme Java se compose d éléments de base comme : les expressions les instructions les blocs d instructions les blocs de méthodes les blocs de classes etc.

Constantes et variables Une constante est un valeur non modifiable. Une variable peut contenir des valeurs différentes 1 i = 1; 2 i = 10; 1 et 10 sont des constantes. i est une variable qui prend ici successivement les valeurs 1 et 10. = est l opérateur d affectation.

Expressions Une expression est une combinaison de constantes, de variables et d opérateurs utilisés dans des calculs mathématiques. 1 (2+3) 10 1 6 2 i 3 6+ i autres exemples:

Opérateurs arithmétiques Une expression peut contenir des symboles appelés opérateurs arithmétiques en langage Java. Liste des opérateurs: + Addition - Soustraction * Multiplication / Division % Modulo

Les opérateurs de multiplication et de division sont prioritaires par rapport à l addition et à la soustraction. Pour modifier l ordre de priorité, on peut utiliser les parenthèses (). 1 2+3 10 est différent de 1 (2+3) 10

Instructions En langage Java, une instruction est une ligne exécutable, terminée par un point-virgule. Exemple : 1 i = 1; 2 System. out. p r i n t f ( "Hello a tous\n" ) ; 3 System. e x i t ( 0 ) ; / / f i n normal d un programme sont des instructions.

Blocs d instructions Les instructions peuvent être regroupées en blocs compris entre deux accolades : l une dite d ouverture ({), l autre dite de fermeture (}). Un bloc d instructions est traité comme une instruction simple par le compilateur Java. 1 { 2 i = 2; 3 j = i 10; 4 }

Déclarations Il faut déclarer toutes les variables avant de s en servir. Une déclaration précise un type et comporte une liste de une ou plusieurs variables de ce type. Par exemple : 1 i n t mini, maxi, i n t e r v a l l e ; 2 char c ; / on peut mettre un commentaire pour i n d i q u e r 3 à quoi s e r t l a v a r i a b l e / On peut également initialiser les variables au moment où on les déclare. Si le nom de variable est suivi du signe = et d une expression, cette expression donne la valeur initiale de la variable. 1 i n t i = 0; 2 double eps = 1.0e 5; 3 char a = a ;

Typage Le typage des données est essentiel car il permet d indiquer au compilateur comment stocker en mémoire les variables ainsi que la façon dont les variables vont pouvoir interagir. Par exemple: 1 i n t i = 10; 2 i n t j = 3; 3 double x = 1 0. ; 4 double y = 3. ; 5 System. out. p r i n t l n ( i / j ) ; / / d i v i s i o n dans l e s e n t i e r s 6 System. out. p r i n t l n ( x / y ) ; / / d i v i s i o n dans l e s r e e l s Noms et types de données Le langage Java comporte très peu de types de base : char, int (byte, short, long), float, double, boolean.

Type int Le mot-clé int correspond au type entier applicable aux variables. Un nombre entier est une valeur sans partie décimale. En conséquence, une division entière a comme effet de tronquer le résultat par rapport à la valeur décimale. Typage taille (octets) valeur mini. valeur maxi. int 4-2 147 483 648 2 147 483 647 short 2-32768 32767 byte 1-128 127 long 8-9 223 372 036 854 775 808-9 223 372 036 854 775 807

Type float A la différence d un nombre entier, un nombre à virgule flottante comprend une partie décimale dissociée de la partie entière par une virgule. En Java, le type float définit les nombres décimaux, aussi appelés nombres réels. En général, la précision du type float est de sept chiffres après la virgule. Type double En Java, un nombre à virgule flottante peut aussi être de type double. En général, la précision du type double est de quinze chiffres après la virgule. utilisez double de préférence

Notation scientifique Les valeurs décimales peuvent être exprimées à l aide de la notation scientifique. Ainsi un nombre se composera d une mantisse et d un exposant, séparés indifféremment par e ou E. Ainsi, 5000 peut s écrire 5e3, -300 est égal à -3e2, 0.0025 à 2.5e-3.

Type char Un objet de type char correspond à un élément du jeu de caractères utilisé par l ordinateur. Un caractère compris entre deux guillemets simples ( ) s appelle une constante caractères. Par exemple, a, A, b, 7 sont des constantes caractères du jeu de caractères ASCII. Il existe un correspondance entre chaque caractère et un code numérique unique (compris entre 0 et 255). Par exemple, les caractères A, a, B, et b ont respectivement comme valeur numérique unique 65, 97, 66 et 98. Ainsi les deux instructions d affectation suivantes sont équivalentes : 1 char x ; 2 x = A ; 3 x = 6 5 ;

En langage Java, le caractère d échappement (\) est toujours suivi d un caractère spécial. Par exemple \n correspond au retour chariot et au passage à une nouvelle ligne. Exemple : Caractère Description \n Retour chariot : passage à une nouvelle ligne \t Tabulation : place le curseur au niveau de la tabulation suivante \r Caractère de début de ligne : replace le curseur en début de ligne \\ insère le caractère \ \" insère le caractère " etc.

La méthode System.out.printf La méthode System.out.printf prend comme arguments une chaîne de caractère pouvant contenir des indicateurs de formats. Par exemple, dans : 1 System. out. p r i n t f ( " Voici l entier deux : %d\n", 2 ) ; L indicateur de format %d permet d afficher l entier 2. De manière générale, System.out.printf s occupent de mettre en forme les données en sortie. On appelle cela le formattage des données. Syntaxe de System.out.printf 1 System. out. p r i n t f ( S t r i n g format,... ) ; L argument String format contient deux types d objets : des caractères ordinaires et des indicateurs de format.

Les indicateurs de format commencent par % et se terminent par un caractère de conversion. Entre les deux, on peut placer dans l ordre : des drapeaux - cadre l argument à gauche dans son champ d impression + imprime systématiquement le signe du nombre si le premier caractère n est pas un signe, place un espace au début 0 pour les conversions numériques, complète le début du champ par des zéros un nombre, qui précisent la largeur minimum du champ d impression un point, qui sépare la largeur du champ de la précision désirée un nombre qui donne la précision (voir exemple) que ce soit pour une chaîne, un entier, un flottant (f, e, E, g, ou G)

Indicateurs Description %d %i Format entier %c Format caractère %f Format décimal (virgule flottante) %e %E Format de notation scientifique %g utilise %f ou %e selon la longueur de la valeur décimale %G utilise %f ou %E selon la longueur de la valeur décimale %s Format chaîne de caractère %% %

1 p u b l i c class Main { 2 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) { 3 System. out. p r i n t f ( "%d\n", 1 ) ; 4 System. out. p r i n t f ( "%f\n", 0. 1 0 ) ; 5 System. out. p r i n t f ( "%e\n", 0. 1 0 ) ; 6 System. out. p r i n t f ( "%E\n", 0. 1 0 ) ; 7 System. out. p r i n t f ( "%g\n", 0. 1 0 ) ; 8 System. out. p r i n t f ( "%G\n", 0.0000010); 9 10 System. out. p r i n t f ( "12345 12345 12345\n" ) ; 11 System. out. p r i n t f ( "%5d %-5d %d\n", 1, 1, 1 ) ; 12 System. out. p r i n t f ( "%5d %-5d %d\n", 10, 10, 1 0 ) ; 13 System. out. p r i n t f ( "%5d %-5d % 5d\n", 10, 10, 10); 14 System. out. p r i n t f ( "%+5d %-5d % 5d\n", 10, 10, 1 0 ) ; 15 System. out. p r i n t f ( "%5d %-5d %d\n", 1000, 1000, 1000); 16 System. out. p r i n t f ( "%5d %-5d %d\n", 1000000, 1000000, 17 1000000); 18 19 System. out. p r i n t f ( "%10.4f\n", 123.456789); 20 21 System. out. p r i n t f ( "%s\n", "toto" ) ; 22 System. out. p r i n t f ( "%10s\n", "toto" ) ; 23 System. out. p r i n t f ( "%-10s\n", "toto" ) ; 24 } 25 }

Opérateurs En plus de opérateurs standards vus précedemment (+, -, *, /, %) le langage Java possède d autres opérateurs plus évolués : des opérateurs arithmétiques d affectation des opérateurs unaires des opérateurs d incrémentation et de décrémentation des opérateurs relationnels des opérateurs de conversion de type

Opérateurs arithmétiques d affectation C est l opérateur =, à ne pas confondre avec le = mathématique. Par exemple, a=5 signifie que l on affecte à la variable a la valeur 5. On ne peut pas écrire en langage Java 5=a. Il existe en langage Java des opérateurs d opérations-affectations qui regroupe les deux propriétés. Ce sont les opérateurs +=, -=, *=, /=, et %=. Ainsi x+=y équivant à x=x+y, etc.

Opérateurs unaires Un opérateur unaire en Java est l opérateur - : moins, qui transforme une valeur en son opposé. 1 x = 1.234; 2 y = x ; 3 z = x y ; / é q u i v a l e n t à z = x ( y ) ; 4 é q u i v a l e n t à z = x + y ; /

Opérateurs d incrémentation et de décrémentation Le langage Java propose une solution simple au cas où l on veut incrémenter ou décrémenter de 1 une valeur entière : l opérateur ++ ou l opérateur --. Il existe deux façons en Java d incrémenter (respectivement de décrémenter) 1 à une variable x : x++ (resp. x--) ou ++x (resp. --x). Les instructions suivantes sont équivalentes : 1 x = x + 1; 2 x += 1; 3 x ++; 4 ++x ; Dans le cas de l association des opérateurs ++ ou -- et une affection, on distingue --x qui correspond à une pré-incrémentation (l incrémentation a lieu avant l affectation), de x++ qui correspond à une post-incrémentation (l incrémentation a lieu après l affectation)..

Exemple : 1 p u b l i c class Main 2 { 3 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) 4 { 5 i n t a, b, c, d, r e s u l t ; 6 a = 1; 7 b = 1; 8 c = 1; 9 d = 1; 10 r e s u l t = a++; 11 System. out. p r i n t f ( " Resultat de a++ : %d\n", r e s u l t ) ; 12 r e s u l t = ++b ; 13 System. out. p r i n t f ( " Resultat de ++b : %d\n", r e s u l t ) ; 14 r e s u l t = c ; 15 System. out. p r i n t f ( " Resultat de c-- : %d\n", r e s u l t ) ; 16 r e s u l t = d ; 17 System. out. p r i n t f ( " Resultat de --d : %d\n", r e s u l t ) ; 18 } 19 }

Opérateurs de conversion de types Il est possible de convertir en Java un type en un autre de type en faisant précéder l opérande de l opérateur de conversion. La syntaxe générale est 1 ( type ) x où type correspond au type de données cibles et x est une variable (ou une expression) contenant la valeur du type en cours. Par exemple ( float ) 5 convertit l entier 5 en nombre décimal de type float.

Exemple : 1 p u b l i c class Main 2 { 3 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) 4 { 5 i n t x, y ; 6 x = 7; 7 y = 5; 8 System. out. p r i n t f ( "x = %d et y = %d\n", x, y ) ; 9 System. out. p r i n t f ( "x / y = %d\n", x / y ) ; 10 System. out. p r i n t f ( "(float) x/y = %f\n", ( f l o a t ) x / y ) ; 11 } 12 }

Méthodes (de classe) Les méthodes (ou fonctions) permettent de regrouper des instructions Java en une unité simple qui peut être réutilisée à volonté. 1 s t a t i c i n t a d d e n t i e r s ( i n t x, i n t y ) 2 { 3 i n t r e s u l t a t ; 4 r e s u l t a t = x+y ; 5 r e t u r n ( r e s u l t a t ) ; 6 } En java, il existe deux types de méthodes: les méthodes d objets les méthodes de classes. Les méthodes de classes sont déclarés en utilisant le mot-clé static.

Nom d une méthode Le nom d une méthode doit être le plus explicite possible afin d éclaircir l utilisateur sur le traitement réalisé par la méthode. Type d une méthode Le type d une méthode correspond au type de la valeur renvoyée par la méthode (dans l exemple, add entiers est de type int ). Si une méthode ne renvoie aucune donnée, alors elle est de type void. 1 void a f f i c h e ( i n t a, f l o a t y ) 2 { 3 p r i n t f ( "Voici un entier : %d\n", a ) ; 4 p r i n t f ( "Voici un flottant : %f\n", y ) ; 5 }

Arguments d une méthode Il est parfois nécessaire de transmettre des informations pour que la méthode les traite lors de son exécution. Ces informations s appellent les arguments. L argument figure entre parenthèses juste après le nom de la méthode qui va l exploiter. Le nombre d arguments varie selon le traitement réalisé. Les arguments transmis à une même fonction sont séparés par des virgules. Si une méthode ne requiert pas d arguments, les parenthèses sont alors vides.

Début et fin d une méthode Les accolades d ouverture et de fermeture marquent le début et la fin d une méthode. Elles permettent aussi de délimiter un bloc d instructions. En fait, ces marques indiquent que la séquence contient plusieurs instructions. Corps d une méthode Il s agit de l emplacement compris entre les deux accolades et contenant déclarations de variables et instructions qui s exécutent séquentiellement lors de l appel de la méthode. Appel d une méthode Les méthodes ne représentent que des définitions informatiques d instructions à traiter, elles ne sont exécutées que si on les appelle.

1 p u b l i c class Main { 2 s t a t i c void a f f i c h e ( i n t a, double y ) { 3 System. out. p r i n t f ( "Voici un entier : %d\n", a ) ; 4 System. out. p r i n t f ( "Voici un flottant : %f\n", y ) ; 5 } 6 7 s t a t i c i n t a d d e n t i e r s ( i n t x, i n t y ) { 8 i n t r e s u l t a t ; 9 r e s u l t a t = x+y ; 10 r e t u r n ( r e s u l t a t ) ; 11 } 12 13 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) { 14 i n t a ; 15 i n t b ; 16 i n t c ; 17 18 a = 5; 19 b = 7; 20 c = a d d e n t i e r s ( a, b ) ; 21 a f f i c h e ( c, 3. 5 6 ) ; 22 a = a d d e n t i e r s ( c, a ) ; 23 } 24 }

Booléens et opérations sur les booléens En langage Java, il existe le type boolean qui permet de représenter des booléens. Une variable de type booléen ne peut posséder que deux valeurs: true ou false. On peut associer au type booléen des opérateurs : Opérateur Description ou logique && et logique! non logique

1 p u b l i c class Main 2 { 3 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) 4 { 5 boolean v = t r u e ; 6 boolean f = f a l s e ; 7 System. out. p r i n t f ( "vrai ou faux : v f : %b\n", v f ) ; 8 System. out. p r i n t f ( "vrai et faux : v && f : %b\n", v && f ) ; 9 System. out. p r i n t f ( "non vrai :!v : %b\n",! v ) ; 10 System. out. p r i n t f ( "non faux :!f : %b\n",! f ) ; 11 } 12 }

De plus il existe des opérateurs de comparaison qui permettent de comparer deux expressions à la fois : Opérateur Description == égal à!= non égal à > supérieur à < inférieur à >= supérieur ou égal à <= inférieur ou égal à

1 p u b l i c class Main 2 { 3 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) 4 { 5 i n t x, y ; 6 double z ; 7 x = 7; 8 y = 25; 9 z = 24. 46; 10 System. out. p r i n t f ( " x = %d, y = %d, z = %f\n", x, y, z ) ; 11 System. out. p r i n t f ( " x >= y : %b\n", x >= y ) ; 12 System. out. p r i n t f ( " x == y : %b\n", x == y ) ; 13 System. out. p r i n t f ( " x < z : %b\n", x < z ) ; 14 System. out. p r i n t f ( " y > z : %b\n", y > z ) ; 15 System. out. p r i n t f ( " x!= y - 18 : %b\n", x!= y 1 8 ) ; 16 System. out. p r i n t f ( " x + y!= z : %b\n", x + y!= z ) ; 17 } 18 }

Instructions conditionnelles Il est possible en Java (comme dans tous les langages évolués) d exécuter des instructions sous conditions. Par exemple, la racine carrée d un nombre x ne peut se calculer que si x est positif. Avant tout calcul d une racine carrée, il est donc nécessaire de vérifier la positivité de la variable. Cela se fait en Java en utilisant 1 i f ( e x p r e s s i o n c o n d i t i o n n e l l e ) 2 i n s t r u c t i o n ;

1 p u b l i c class Main 2 { 3 4 p u b l i c s t a t i c void main ( S t r i n g [ ] args ) 5 { 6 f l o a t x ; 7 x = 5; 8 i f ( x >= 0) { 9 System. out. p r i n t f ( "La racine carrée de %f vaut %f\n", 10 x, Math. s q r t ( x ) ) ; 11 } 12 } 13 }

Souvent, une condition peut impliquer une action ou une autre : si... alors... sinon... Cela se traduit en Java par : 1 i f ( e x p r e s s i o n c o n d i t i o n n e l l e ) 2 i n s t r u c t i o n 1 ; 3 else 4 i n s t r u c t i o n 2 ; Attention : si il y a plusieurs instructions après le if, il faut penser à introduire des { }. Si expression_conditionnelle vaut true alors on exécute instruction1, sinon (dans le cas ou expression_conditionnelle vaut false) on exécute instruction2.

1 / c a l c u l d une v a l e u r absolue / 2 3 s t a t i c double valeur absolue ( double x ) 4 { 5 double fabs ; 6 7 / s i x est p o s i t i f, l a v a l e u r absolue de x est x / 8 / s i x est n é g a t i f, l a v a l e u r absolue de x est x / 9 i f ( x >= 0) { 10 fabs = x ; 11 } else { 12 fabs = x ; 13 } 14 r e t u r n ( fabs ) ; 15 }

L ensemble if (...) inst1 else inst2 est perçue comme une seule instruction. Il peut donc être inséré dans un ensemble if (...) inst1 else inst2 de manière à former des if imbriqués. Ex. : la suite de Fibonnacci (U n = U n 1 + U n 2 avec U 0 = 0 et U 1 = 1) : 1 s t a t i c i n t f i b o ( i n t n ) 2 { 3 i n t u n ; 4 i f ( n == 0) { 5 u n = 0 ; 6 } e l s e i f ( n == 1) { 7 u n = 1 ; 8 } e l s e { 9 u n = f i b o ( n 1) + f i b o ( n 2 ) ; 10 } 11 return ( u n ) ; 12 }