[PERL]-Problème "for if elsif" en menu
Résolu/Fermé
blux
Messages postés
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
-
8 déc. 2006 à 10:57
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 - 8 déc. 2006 à 12:45
blux Messages postés 26450 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 novembre 2024 - 8 déc. 2006 à 12:45
A voir également:
- [PERL]-Problème "for if elsif" en menu
- Menu déroulant excel - Guide
- Windows 11 menu démarrer classique - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- 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
26450
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
6 novembre 2024
3 312
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...