Un tutoriel pour découvrir les TESTS

Objectif.

Le but de ce tutoriel est de découvrir les TESTS et l'instruction conditionnelle.

Introduction.

Comment programmer le fait de faire des choix.

A ce stade, nous savons programmer une liste d'instruction, qui ... font toujours la même chose ! Voilà qui est bien limité.
Un vrai programme doit pouvoir exécuter des instructions différentes selon certaines conditions et il existe une structure universelle pour implémenter ce mécanisme.

Par exemple :

if(temperature < 15)
{    
      println("allumer chauffage");
}

où la construction permet de n'allumer le chauffage qu'en cas de besoin. Tandis que :

if(temperature < 15)
{
    println("allumer chauffage");
} //remarquez les BLOCS { } qui encadrent ce qu'on doit faire
else
{
    println("ne rien faire");
}

montre comment se traduit la construction si la température est en dessous de 15 degrés alors allumer le chauffage sinon ne rien faire.

Définir des conditions à tester.

Pour définir le test à effectuer nous avons vu que nous pouvions comparer deux valeurs numériques, voici une liste de tests possibles pour des nombres a et b et des chaînes de caratères s et c:

// Vrai si et seulement si le nombre a est strictement plus petit que le nombre b:

            a < b ou b > a

// Vrai si et seulement si le nombre a est strictement plus petit ou égal au nombre b:

            a <= b ou b>=a

// Vrai si et seulement si le nombre a est égal au nombre b:

            a == b et a!=b, le contraire

// Vrai si et seulement si la chaîne s est égale à la chaîne c

            equal(s, c)
Nous pouvons ensuite combiner ces conditions :

// Vrai si et seulement si une_condition ET autre_condition sont vraies :

            une_condition && autre_condition

// Vrai si et seulement si une_condition OU autre_condition, ou les deux, sont vraies2 (Voir2 pour "trouver" la touche |):

            une_condition || autre_condition

// Vrai si et seulement si une_condition n'est PAS vraie :

            (!une_condition)
ce qui nous permet de définir des expressions aussi complexes que nous avons besoin, par exemple :

// Vrai si et seulement si x est plus grand que a et plus petit que b donc dans l'intervale ]a, b[:

            a < x && x < b

// Vrai si et seulement si la reponse égale oui en minuscule ou majuscule :

            equal(reponse, "oui") || equal(reponse, "OUI")

// Vrai si et seulement si l'age est plus que 10 et le nom n'est pas Jean:

            age > 10 && (! equal(nom, "Jean"))
en utilisant des parenthèses pour ne pas mélanger les termes de ces expressions.

Travail proposé.

Ajouter des tests à un code.

Entrez le code suivant, exécutez le et observez le résultat.

void main() {
   int a,b,c;
   double x;
   String texte,reponse;
   println("Bonjour, entrez trois valeurs a,b,c");
   a=readInt();
   b=readInt();
   c=readInt();
   texte="L'équation "+a+"X+"+b+"="+c+" a comme solutions :";
   if(a==0) //PREMIER SI
   {
      if (c-b==0) //SECOND SI, DANS LE PREMIER
      {
      reponse = "Toute valeur réelle est solution";
      }
      else //SINON DU SECOND SI
      {
      reponse="Aucune solution";
      }
   }
   else //SINON du premier SI
   {
   x=(double)(c-b)/a;
   reponse=" le nombre réel "+x+ "(valeur approchée)";
   }
println(texte);
println(reponse);
} //Fin du programme

puis tester ce code avec différentes valeurs de a,b et c.
Quel est le rôle de ce programme ?
Pourquoi y-a-t'il deux tests ?
Dans la ligne x=(double)(c-b)/a, supprimez le (double) entre parenthèse. Que se passe-t-il ? A quoi sert ce (double) ?

Remarques.

A propos de l'égalité.

Notez que le signe = veut dire "affecter une valeur" tandis que être égal s'écrit == pour les nombres et equal(s, c) pour les chaines de caractères : voici quelque chose d'un peu compliqué.

A propos de la touche |

Sur les claviers français des PC, il faut taper Alt Gr + 6;
Alt Gr
est la touche à droite de la barre espace qu'il faut enfoncer en même temps que la touche du chiffre 6.

Suite : les BOUCLES