Petit survol des
tests conditionnels
Po u r D é b ute r
JAVASCRIPT VOL. III
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818
Les tests conditionnels sont la base de toute programmation intelligente
(Intelligence Artificielle = AI, programmation en logique, logique floue ou
fuzzy logic, heuristique).
Ils sont aussi souvent la cause de beaucoup des « erreurs de temps
dexécution » associées aux « erreurs de logic ».
En effet, il existe plusieurs niveaux derreurs en programmation :
1. Quand le problème est mal conçu : « erreur [du temps] de con-
ception ».
2. Quand le problème est mal présenté à linformaticien ou que ce
dernier le comprend de travers : erreur de
3. Quand le problème est mal analysé : « erreur [du temps]
danalyse ».
4. Le problème est bien présenté et bien compris et bien analysé,
mais on utilise une logique inappropriée pour façonner les ins-
tructions ou on les positionne mal : « Erreur [du temps] de
programmation ».
5. On encode mal : on additionne au lieu par exemple de multi-
plier, et le test alpha se fait avec pas assez de données représen-
tatifs et on ne dépiste donc pas lerreur : « Erreur dencodage »
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-IV
Tests conditionnels
-2/27- vendredi, 31. mai 2019 (6:08 )
a. 2 + 2 = 2 * 2 = 6 2 = 8 / 2 = rac2(16) = log(1e4)
6. « Erreur du temps dexécution » = résultats inattendus :
a. On divise par zéro ou par une variable ayant la valeur
zéro, ou par une expression donnant le résultat zéro,
alors la machine ou le programme ... (comportement
imprévisible).
b. Racine carré dun nombre négatif
c. « Erreur de branchement » qui à elle seule constitue un
type distinct derreur Le branchement peut 1. être er-
ratique ou 2. être intempestif par exemple sans se baser
sur le résultat dun test conditionel préalable.
d. Boucles interminables, insortables
7. « Erreur de logique » : on conclut que quelquun est aveugle
simplement parce quil mandie dans la rue les yeux fermés, ou
quil est mort tout simplement parcequil est en arrêt respira-
toire ou cardio-respiratoire...
8. Ainsi de suite, patati patata, etceteri etcetera etcetiroble, buna
ye buna, bongo na bongo, and so on
Concernant les erreus du temps dexécution, voici une très bonne il-
lustration : un code tiré de la page
https://webreflection.blogspot.com/2007/03/function-function-or-var-
function.html, je nai fait quajouter le compteur. Ce fascinant merveil-
leux programme fonctionne à merveille, sauf que dans un browser il
exécute 11 fois, alors quavec un autre il exécute 10 fois (lui-même fait
allusion à 9 fois au lieu de 11 : This code will call 10 times the function
(20/2 seconds) and not 9).
<script type="text/javascript">
onload = function(){
cpt=0;
var interval = function(){
document.body.appendChild(document.createTextNode("
***"+ ++cpt+"*** ".concat(Math.random() * 1234567)));
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-IV
Tests conditionnels
-3/27- vendredi, 31. mai 2019 (6:08 )
return interval ? 0 : setInterval(arguments.callee, ar-
guments[0]);
}(2000);
setTimeout(function(){
clearInterval(interval);
}, 20000);
};
</script>
Avec Firefox :
Avec Brave Browser :
En ce qui concerne les instructions conditrionnelles « if », il nest pas
seulement question de connaître et comprendre leur syntaxe qui du
reste est très facile, mais le plus important est de savoir les appliquer à
bon escient et dans un contexte précis.
Quelques cas pièges très faciles à se figurer :
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-IV
Tests conditionnels
-4/27- vendredi, 31. mai 2019 (6:08 )
I. Code inaccessible (qui ne sera jamais exécuté) :
a. Par suite dune condition exclusive
1) Conflit de conditions
2) Condition contraire à un « if » englobant
3) Combinaison ambiguë
4) Condition non nécessaire à analyser
5) Par instruction bornante : return
6) Par instruction bornante : break
II. Mauvais branchement :
a. Si vieillard => retraiter
b. Si vieillard mais encore plus fort et plus compétant que cer-
tains jeunes => conserver absolument
Voyns les détails de ce qui précède :
I. Code inaccessible. Imaginez que le code inaccessible soit
lessentiel pour lequel vous avez écrit le probramme ¿ Ceci
peut arriver par :
a. Par suite dune condition exclusive
1) Conflit de conditions
<script type="text/javascript"> "use strict";
for(let age=14;age<=21;age++) {
if(age>20 && age<15){
/**/ alert("JAMAIS EXÉCUTÉ!");
}
else console.log("TOUJOURS EXÉCUTÉ :",age);
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-IV
Tests conditionnels
-5/27- vendredi, 31. mai 2019 (6:08 )
}
</script>
2) Condition contraire à un « if » englobant
<script type="text/javascript"> "use strict";
let age=30;
if(age>20 && age<30){
console.log("entre 20 et 30");
if(age>=30)alert("JAMAIS EXÉCUTÉ!");
}
else if(age>=30)console.log("Sup == 30!");
</script>
3) Condition ambiguë
<script type="text/javascript"> "use strict";
let t="";
for(let age=10;age<=40;age+=5){
if(age>=20 || age<=30){
///// TOUJOURS EXÉCUTÉ
1 / 27 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !