java.net member

Rechercher dans ce site

Les Expressions de JavaFX - Partie 1

>> 07 March 2009

Les expressions sont des morceaux de code exécutables, leur évaluation retourne une valeur, ou elles sont de type Void (vide). Tout est expression en JavaFX, y compris var et def.


Block Expression (bloc d'expressions)
Un ensemble d'instructions, séparées par point virgule à l'intérieur de deux accolades { et }
La valeur de cette expression est la dernière instruction dans le bloc. S'il n'y a pas d'instructions dans le bloc, ce bloc retourne Void.

Exemple :


/**
* @author Kaesar ALNIJRES
*/

var seq =[1..3];
var total={
var t=0;
for(i in seq)
t+=i;
t;

}

println(total);



If expression
l'instruction if permet d'exécuter un bloc de code, si la condition if est évaluée à true (vrai)

La plupart des exemples utilisent un format court de if et else

if(condition) valeur else valeur

Exemple :

If permet de retourner avec else un sous type de la variable à gauche.
Ici "n" et "s" sont des objets

/**
* @author Kaesar ALNIJRES
*/


var n = 3;
var n2 = if(n instanceof java.lang.Integer) 5 else "5";
println(n2.getClass());

var s = "3";
var s2 = if(s instanceof java.lang.String) "5" else 5;
println(s2.getClass());



Exemple :
If expression retournant une chaîne de caractères (String)

/**
* @author Kaesar ALNIJRES
*/

var nombre = 3;
var s = if(nombre >= 2) "s" else "";
println("J'ai {nombre} pomme{s}");



Exemple :
Formater l'affichage des chiffres dans une chaîne. Met un 0 si le chiffre est moins de 10

/**
* @author Kaesar ALNIJRES
*/
var num = [1..10];
var n;
for(i in num)
{
if(i < 10) {
n="0{i}";
}

else {
n="{i}";
}

println(n);
}



Et si on omet des accolades { et } pour une instruction unique dans la clause if ?
Sans problème, bien qu'il est conseillé comme en Java d'utiliser des accolades. Cependant il faut faire attention car des détails très subtils existent

Exemple :
/**
* @author Kaesar ALNIJRES
*/
var n = 2;
if(n <= 5 )
n=0;

println(n);



Exemple :
Utiliser une instruction if après la clause if, sans accolades (ou toute autre instruction) ne pose pas de problème.

/**
* @author Kaesar ALNIJRES
*/
var s = "";
var n = 5;
if(n == 5)
s="{n}";
if(n != 5)
s="non équivalent";
println(s);



Exemple avec erreurs
Maintenant si l'expression if, avec instruction unique et sans accolades est suivie par une clause "else", le compilateur affiche une erreur. Pourquoi ?
/**
* @author Kaesar ALNIJRES
*/
var num = [1..10];
var n;
for(i in num)

if(i <= 0)
n="0";

//ici commence les erreurs
else if(i < 10)
n="0{i}";


else
n="{i}";


println(n);



Le compilateur considère tout simplement que c'est une expression if, format court. Dans ce format il ne faut utiliser le point virgule, car c'est une seule expression, et le point virgule sépare des expressions. L'expression globale se termine par point virgule ';'
et des accolades entourent l'expression for.

Exemple :

/**
* @author Kaesar ALNIJRES
*/
var num = [1..10];
var n;
for(i in num) {
if(i <= 0)
n="0"//pas de point virgule

else if(i < 10)
n="0{i}"//pas de point virgule


else
n="{i}";


println(n);

}



Utilisez un format court
Il est possible d'utiliser un format court, ce que j'ai fait dans la plupart d'exemple.

Au lieu de
==================
if(i < 0)
{ n="0";
}
else if(i < 10) {
n="0{i}";
}

else {
n="{i}";
}
===================

On peut utiliser
---------------------------------------------------------------------------
n = if(i < 0) "0" else if(i < 10) "0{i}" else "{i}";
----------------------------------------------------------------------------

Exemple :

/**
* @author Kaesar ALNIJRES
*/
var num = [1..10];
var n;
for(i in num)

{
n = if(i < 0) "0" else if(i < 10) "0{i}" else "{i}";
println(n);
}



Utilisez (si vous le voulez) "then"
Il est aussi possible d'utiliser "then" après une clause if. Il est aussi possible d'utiliser "then" après if et pas après else if etc ...

Exemple :

/**
* @author Kaesar ALNIJRES
*/
var i = 5;
var n = if(i < 0) "0" else if(i < 10) "0{i}" else "{i}";
println(n);

var m = if( i < 0 ) then "0" else if(i < 10) then "0{i}" else "{i}";
println(n);



Une expression if vide

Exemple :

/**
* @author Kaesar ALNIJRES
*/

var num=4;
if(num > 0)
{
println("Valeur positive");

}
else
{
println("Valeur négative")

}

0 comments:

Post a Comment

  © Blogger template Simple n' Sweet by Ourblogtemplates.com 2009

Back to TOP