Petit survol des tests conditionnels JavaScript Vol. III

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
d’exécution » associées aux « erreurs de logic ».
En effet, il existe plusieurs niveaux d’erreurs 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é à l’informaticien ou que ce
dernier le comprend de travers : erreur de…
3. Quand le problème est mal analysé : « erreur [du temps]
d’analyse ».
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 l’erreur : « Erreur d’encodage »
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 d’exé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é d’un nombre négatif…
c. « Erreur de branchement » qui à elle seule constitue un
type distinct d’erreur… Le branchement peut 1. être er-
ratique ou 2. être intempestif par exemple sans se baser
sur le résultat d’un test conditionel préalable.
d. Boucles interminables, insortables…
7. « Erreur de logique » : on conclut que quelqu’un est aveugle
simplement parce qu’il mandie dans la rue les yeux fermés, ou
qu’il est mort tout simplement parcequ’il 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 d’exé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 n’ai fait qu’ajouter le compteur. Ce fascinant merveil-
leux programme fonctionne à merveille, sauf que dans un browser il
exécute 11 fois, alors qu’avec 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 n’est 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 d’une 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
l’essentiel pour lequel vous avez écrit le probramme ¿ Ceci
peut arriver par :
a. Par suite d’une 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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!