[PERL]-Problème "for if elsif" en menu
Résolu/Fermé
blux
Messages postés
26539
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 décembre 2024
-
8 déc. 2006 à 10:57
blux Messages postés 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 - 8 déc. 2006 à 12:45
blux Messages postés 26539 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 20 décembre 2024 - 8 déc. 2006 à 12:45
A voir également:
- [PERL]-Problème "for if elsif" en menu
- Menu déroulant excel - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Windows 11 menu démarrer classique - Guide
- Canon quick menu - Télécharger - Utilitaires
- Réinitialiser menu démarrer windows 10 - Guide
2 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
8 déc. 2006 à 11:20
8 déc. 2006 à 11:20
Salut,
il ne me prend que le dernier et va donc au menu correspondant, pas à celui que je voudrais (ex : je saisis 98, il va au choix 8, 97 ->7)
Puisqu'il trouve d'abord /7/ ou /8/
for ($SAISIE)
for est équivalent avec foreach et on l'utilise pour les tableau
for(@chaque_element)
foreach(@chaque_element)
Aussi pour les imbrications. C'est laide avec autant des if...elsif..
Tu peux faire comme ça
use Switch;
il ne me prend que le dernier et va donc au menu correspondant, pas à celui que je voudrais (ex : je saisis 98, il va au choix 8, 97 ->7)
Puisqu'il trouve d'abord /7/ ou /8/
for ($SAISIE)
for est équivalent avec foreach et on l'utilise pour les tableau
for(@chaque_element)
foreach(@chaque_element)
Aussi pour les imbrications. C'est laide avec autant des if...elsif..
Tu peux faire comme ça
while ($SAISIE != 99){ print "\t\t\t\tPool en cours : ".$TAB_POOL[$SAISIE_POOL][0]."\n"; print "\t\tProchains jours ouvrés : ".$JO1D." ".$JO1J."/".$JO1M."/".$JO1A." et ".$JO2D." ".$JO2J."/".$JO2M."/".$JO2A."\n"; print " 1 - \n"; print " 2 - \n"; print " 3 - \n"; print " 4 - \n"; print " 5 - \n"; print " 6 - \n"; print " 7 - \n"; print " 8 - \n"; print "99 - Sortie\n"; print "\nVotre choix -> "; $SAISIE = <STDIN>; chomp($SAISIE); print "#".$SAISIE."#\n"; SWITCH:{ if ($SAISIE =~/1/) {print $I."-".$TAB_POOL[$I][0]."\t" ;last SWITCH} if ($SAISIE =~/2/) {ListeCart() ;last SWITCH} if ($SAISIE =~/3/) {$I = $IG ;last SWITCH} if ($SAISIE =~/4/) {print "Constitution liste des cartouches\n";last SWITCH} if ($SAISIE =~/5/) {print "Marche pôô!\n" ;last SWITCH} if ($SAISIE =~/6/) {$I = $IG;print "\n" ;last SWITCH} if ($SAISIE =~/7/) { for $I (0..$NB_ELEM-1){ print $LIST."\n"; } ;last SWITCH} if ($SAISIE =~/8/) { for $I (0..$NB_ELEM-1){ print $LIST."\n"; } ;last SWITCH} if ($SAISIE =~/98/) {print "Forçage\n" ;last SWITCH} if ($SAISIE =~/99/) {die "Fin\n" ;last SWITCH} } }En revanche, depuis Perl 5.8 pour obtenir les instructions switch et case
use Switch;
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
8 déc. 2006 à 11:36
8 déc. 2006 à 11:36
alors mets comme ça
/^1$/
.
.
/^99$/
si tu mets /7/ quand tu tapes 97 le motif correspond donc tu ne vas jamais exectuer le menu 97
/^1$/
.
.
/^99$/
si tu mets /7/ quand tu tapes 97 le motif correspond donc tu ne vas jamais exectuer le menu 97
blux
Messages postés
26539
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
20 décembre 2024
3 317
8 déc. 2006 à 12:45
8 déc. 2006 à 12:45
Nickel, ça marche !
Merci...
Merci...
8 déc. 2006 à 11:30
Pour les instructions 'switch case', y'a des soucis, car il évalue le code et comme j'ai des / non pairés, ça m$*$~#...
https://linuxfr.org/forums/programmation-perl/posts/switch-en-perl-58-qui-veut-pas-compiler (dernier message)
C'est pour ça que j'ai cherché une solution de secours...