Dans ton algorithme en #16 tu mets un « Lire A » dans la boucle, que tu ne mets pas dans ton code en #12.
Si tu le mettais, la présence de la boucle aurait un sens et elle aurait une chance de s'arrêter un jour.
Dans ton algorithme en #16 tu mets un « Lire A » dans la boucle, que tu ne mets pas dans ton code en #12.
Si tu le mettais, la présence de la boucle aurait un sens et elle aurait une chance de s'arrêter un jour.
Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #!/bin/bash read -p "Entrez un nombre compris entre 0 et 20 :" Nbr while (( Nbr < 0 || Nbr > 20 )); do read -p "Entrez un nombre correct :" Nbr done if [[ Nbr -ge 0 && Nbr -lt 9 ]]; then echo "ce nombre est compris entre 0-9" else echo "ce nombre est compris entre 10-20" fi
merci bcp Mr N_Bah!! pour vos conseils à partir de mon code ici pouvez vous m'aider à gerer les nombres décimaux avec un elif?!
je ne passerais pas par if...elif...else...fi, mais par un case/esac avec des plages de nombres, et le Développement des chemins.
dans un if...else..., si tu connais un peu le Remplacement de paramètres, tu peux enlever tous les nombres (avec un plage, encore), et voir s'il reste un point...
PS: les expressions en italique sont des mot-clés du man. cf. man bash
Il n'y a pas de nombres décimaux en bash. Que des entiers.pouvez vous m'aider à gerer les nombres décimaux
Il va falloir préciser le besoin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for i in 1.2 10 do case $nb in [0-9]|1[0-9]|20) echo valide;; *.*) echo "la chaîne entrée contient un point";; esac done
Eh bien, l'algorithme éclairant tu l'as toi-même donné en #16.
Si tu l'appliques à ton code en #12, ça donne (avec une ou deux modifs supplémentaires) :
PS : je pense que le « Mr » est inutile lorsque tu t'adresses aux personnes participant à la discussion, en tout cas il est inutile en ce qui me concerne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #!/bin/bash read -p "Entrez un nombre : " Nbr while (( Nbr >= 0 && Nbr <= 20 )); do if [[ Nbr -eq 0 ]]; then echo "Ce nombre est un zero." elif [[ Nbr -gt 0 && Nbr -lt 10 ]]; then echo "C'est un nombre inclus dans l'intervalle 1-9." else echo "C'est un nombre inclus dans l'intervalle 10-20." fi read -p "Entrez un nombre : " Nbr done echo "Ce nombre est en dehors de l'intervalle 0-20."
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager