Précision de types en perl
Bonjour
Commencant en perl j'ai un programme tout bete qui me calcule si le nombre que j'entre est pair ou non:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #!/usr/bin/perl -w
#petit prog destiné a verifier la parité d'un nombre.
printf ("Rentrez un nombre: \n");
chomp($A=<STDIN>);
if ($A%2==0)
{
print ("$A est un nombre pair\n");
}
else
{
print ("$A est un nombre impair\n");
} |
Seulement voila: si l'on rentre une lettre au lieu d'un nombre le comportement devient n'importe quoi j'aurais donc aimé rajouter une clause elsif précisant que si $A n'est pas un entier, l'utilisateur doit recommencer en saisissant un nombre entier.
Donc un elsif qui permette de clarifier le type de $A tout en me permettant de revenir au début mon problème étant que je ne sais pas comment l'écrire en perl
:merci: de vos idées
Re: Précision de types en perl
Citation:
Envoyé par Gnux
Bonjour
Commencant en perl j'ai un programme tout bete qui me calcule si le nombre que j'entre est pair ou non:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #!/usr/bin/perl -w
#petit prog destiné a verifier la parité d'un nombre.
printf ("Rentrez un nombre: \n");
chomp($A=<STDIN>);
if ($A%2==0)
{
print ("$A est un nombre pair\n");
}
else
{
print ("$A est un nombre impair\n");
} |
Seulement voila: si l'on rentre une lettre au lieu d'un nombre le comportement devient n'importe quoi j'aurais donc aimé rajouter une clause elsif précisant que si $A n'est pas un entier, l'utilisateur doit recommencer en saisissant un nombre entier.
Donc un elsif qui permette de clarifier le type de $A tout en me permettant de revenir au début mon problème étant que je ne sais pas comment l'écrire en perl
:merci: de vos idées
non y a plus simple
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #!/usr/bin/perl -w
#petit prog destiné a verifier la parité d'un nombre.
printf ("Rentrez un nombre: \n");
chomp($A=<STDIN>);
if ($A ~= /^\d+$/) {
if ($A%2==0) {
print ("$A est un nombre pair\n");
} else {
print ("$A est un nombre impair\n");
}
} else{
print "$A n'est pas un chiffre\n";
} |