ASTUCE pour les accolades { } pour if et else

darkyojimbo2 Messages postés 244 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 25 juin 2005 - 16 juin 2004 à 18:09
darkyojimbo2 Messages postés 244 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 25 juin 2005 - 23 juin 2004 à 19:59
J'ai découvert hier, cette astuce en lisant un bouqin de C.

Cette astuce concerne les accolades {} des conditions if et else qui ne sont pas obligatoires si la condition ne contient qu'une commande.

Exemples :
Ceci :
alias exemple {
if $1 <= 10 && $1 >= 1 { return Ton nombre est compris entre 1 et 10 }
}
est la même chose que cela :
alias exemple {
if $1 <= 10 && $1 >= 1 return Ton nombre est compris entre 1 et 10
}

Ou
alias exemple2 {
if $1 == salut { return Coucou ! }
else return { Mechant :( }
}
équivaut à :
alias exemple2 {
if $1 == salut return Coucou !
else return Mechant :(
}

Par contre à un if ou else qui contiendrait 2 (et plus) commandes, les accolades sont obligatoires.

Mes codes n'ont pas été testé mais sont logiquement justes.

Voilà, en espérant vous avoir appris qqch.
++
irc://koliserv.dyndns.org

-Carton- :)

8 réponses

Hades53 Messages postés 231 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 7 juillet 2009
16 juin 2004 à 19:32
Tu es un peu à la bourre, cette 'astuce' est connue depuis longtemps depuis nombres de scripteurs.
En plus c'est marqué dans l'aide:
"You can create multi-line scripts by using the { } brackets. This allows you to create an alias which performs several commands."
0
darkyojimbo2 Messages postés 244 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 25 juin 2005
16 juin 2004 à 19:36
Ben,voila quoi....
Je savais pas que c'était marqué dans l'aide, je n'ai jamais vu cette technique mise en pratique et jamais personne ne m'a dit qui connaissait ça donc j'ai posté.....
[ ]

-Carton- :)
0
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
16 juin 2004 à 20:11
Je ne connaissais pas cette astuce, mais où est son interêt ?
Les conditions sont évaluées plus rapidement ?
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.

:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667

:question) Sorn-Creation
0
cs_tofu Messages postés 1726 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 13 juin 2009 1
17 juin 2004 à 12:57
l'intéret est de gagner quelques ms dans un gros code, puisque mirc n'a plus à évaluer les () et {}.

----

tofu\
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Hades53 Messages postés 231 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 7 juillet 2009
17 juin 2004 à 14:06
Version C:
//Préprocesseur
#include <stdio.h>

int main(void) {
//Taleau des taux
const double taux[3] = {1.25,1.40,1.50};
//Déclaration de la variable d'entrée
float r;
printf("Entrez le montant: ");
//Capture du montant dans la variable r
scanf("%f",&r);
//Gestion des erreurs
if (r < 0) { printf("Erreur! montant invalide.\n"); return 0; }
printf("\nTaux: %f\nMontant canadien: %f\nMontant américain: %f\n"
,taux[0],r*taux[1],r*taux[2]);
return 0;
}

Version C++:
//Préprocesseur
#include
int main(void) {
//Taleau des taux
const double taux[3] = {1.25,1.40,1.50};
//Déclaration de la variable d'entrée
float r;
cout << "Entrez le montant: ";
//Capture du montant dans la variable r
cin >> r;
//Gestion des erreurs
if (r < 0) { cout << "Erreur! montant invalide.\n"; return 0; }
cout << "\nTaux: " <<taux[0]
<<"\nMontant canadien: "<< r*taux[1] << "\nMontant américain: "<< r*taux[2];
return 0;
}
0
Hades53 Messages postés 231 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 7 juillet 2009
17 juin 2004 à 14:15
Arf erreur, trompé de page :|
0
Kerrigan Messages postés 708 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 17 mars 2005
23 juin 2004 à 01:24
ptdr :D
0
darkyojimbo2 Messages postés 244 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 25 juin 2005
23 juin 2004 à 19:59
^^

irc://koliserv.dyndns.org

-Carton- :)
0