Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
982 connectés 

 


Dernière réponse
Sujet : [ASP]Horreur inside!!! lisez moi ca
[SDF]Poire

DLR a écrit a écrit :

 
Perl aussi...
tiens c'est bizarre c'est dans les meilleurs langages (langages les + utilisé, donc discutable sur le terme meilleur) que l'on retrouve ce court-cicuitage...
 
je viens d'etre tres decu par l'ASP... :(  




Le PERL et le PHP sont dérivés du C/C++ donc C normal que le fonctionnement de l'évaluation des tests soit le même.


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
[SDF]Poire

DLR a écrit a écrit :

 
Perl aussi...
tiens c'est bizarre c'est dans les meilleurs langages (langages les + utilisé, donc discutable sur le terme meilleur) que l'on retrouve ce court-cicuitage...
 
je viens d'etre tres decu par l'ASP... :(  




Le PERL et le PHP sont dérivés du C/C++ donc C normal que le fonctionnement de l'évaluation des tests soit le même.

HappyHarry et en VB c pareil ... donc en vbscript c t a prevoir
Kristoph Pour ceux que ca interesse, on appelle ca l'evalutation paresseuse.
siewn

DLR a écrit a écrit :

je faisais mon ptit bonhomme de chemin en ASP, et tout a coup je me rencontre qu'une fonction est appellée alors qu'elle ne devrait pas...
bon, je matte le code, c'est du genre:
 
if (cond1 or cond2) and (functionN) then
...
end if
cond1 et cond2 sont fausse, ce qui me donne
if false and ? then ...
 
et ho! horreur! l'heretic a encore frappé! je me rencontre que le code de functionN est quand meme executé aux cas ou 'false and ?' ca donnerait true!!!!
comment se demerde ASP pour tester les conditions? il ne respecte meme pas cette regle de logique?
dans quel ordre ASP test-il ses 'if'?  




 
y'a pas d'ordre il test les 2 c tout et analyse ensuite.
par contre asp.net corrige ça et si tu fais "if condition1 and condition2" et que condition1 est false, alors il évalude pas condition2 (de la même manière si t'as "if condition1 or condition2" et que condition1 est vrai, il évalue pas condition2)

antp Je vais peut-être dire une bêtise, mais il me semble que le C/C++ commence l'évaluation à partir de la droite, non ?
Peut-être qu'ici pour l'ASP c'est aussi le cas, donc il faut inverser les deux opérandes du AND.
 
En tout cas je sais qu'en Pascal il commence par la gauche :
if (ListView1.Selected <> nil) and (ListView1.Selected.Data <> nil) then
ça marche très bien... Le contraire plante si Selected est nil évidemment :)
gfive En Java (et C aussi, il me semble, mais je peux me tromper), le "&" (ou le "|" ) évalue ses DEUX opérandes, et donne un résultat, mais le "&&" (ou le "||" ) commence par évaluer le premier opérande, et n'évalue le second que si nécessaire....
 
pratique, non?? ;)
DLR

Mara's dad a écrit a écrit :

Et PHP, c'est pareil qu'en C/C++, l'évaluation des expression Booléennes sont court-circuité.
 
C'est pour çà qu'en PHP on voit souvent
 
mysql_connect(....) or die("Connection impossible" );  




Perl aussi...
tiens c'est bizarre c'est dans les meilleurs langages (langages les + utilisé, donc discutable sur le terme meilleur) que l'on retrouve ce court-cicuitage...
 
je viens d'etre tres decu par l'ASP... :(

Mara's dad Et PHP, c'est pareil qu'en C/C++, l'évaluation des expression Booléennes sont court-circuité.
 
C'est pour çà qu'en PHP on voit souvent
 
mysql_connect(....) or die("Connection impossible" );
benou

DLR a écrit a écrit :

 
 
oui c ce que j'ai dufaire, mais c'est debile! j'ai fais du C/C++ et je suis sur que meme en PhP il teste pas tout!
jsuis sur que c'est meme pas marqué dans la doc ca...  




 
C'est pas si débile que ca. Je sais que ca porte un nom les opérateur logiques pour lequel l'ordre d'évaluation des argument n'est pas défini.
Y a quelques langages qui font ca ... Suffit de le savoir.

DLR

Mara's dad a écrit a écrit :

C'est un choix de tester toutes les opérandes.
En effet, il peut y avoir des effets de bord, du genre ta fonction "functionN" peut très bien écrire dans un fichier ou une BDD.
Si tu ne veux pas d'effet de bord, tu fais çà :
if (cond1 or cond2) then
   if (functionN) then  
    ...
   end if
...  
end if  




 
oui c ce que j'ai dufaire, mais c'est debile! j'ai fais du C/C++ et je suis sur que meme en PhP il teste pas tout!
jsuis sur que c'est meme pas marqué dans la doc ca...

Mara's dad C'est un choix de tester toutes les opérandes.
En effet, il peut y avoir des effets de bord, du genre ta fonction "functionN" peut très bien écrire dans un fichier ou une BDD.
Si tu ne veux pas d'effet de bord, tu fais çà :
if (cond1 or cond2) then
   if (functionN) then  
    ...
   end if
...  
end if
DLR je faisais mon ptit bonhomme de chemin en ASP, et tout a coup je me rencontre qu'une fonction est appellée alors qu'elle ne devrait pas...
bon, je matte le code, c'est du genre:
 
if (cond1 or cond2) and (functionN) then
...
end if
cond1 et cond2 sont fausse, ce qui me donne
if false and ? then ...
 
et ho! horreur! l'heretic a encore frappé! je me rencontre que le code de functionN est quand meme executé aux cas ou 'false and ?' ca donnerait true!!!!
comment se demerde ASP pour tester les conditions? il ne respecte meme pas cette regle de logique?
dans quel ordre ASP test-il ses 'if'?

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR