php Boucle PHP, paramètre d'arrêt while()

Nicolas

Membre
Salut,

Ce n'est pas grand chose mais comme je continue mon apprentissage de PHP j'ai une question à propos d'une boucle while() traitée dans le tuto PHP de Grafikart.
La voici, elle est assez simple et ultra-connue
PHP
<?php
$chiffre = null;

while ($chiffre !== 10) {
    $chiffre = (int)readline('Entrez une valeur: ');
}

echo 'Bravo vous avez trouvé le bon chiffre';

On détermine une valeur, ici 10, et on demande à l'utilisateur de rentrer des chiffres jusqu'à ce qu'il tombe sur le bon.
En l'état actuel du code la boucle s'arrête lorsque le bon chiffre est trouvé.

On peut ne laisser qu'une seule chance à l'utilisateur en intégrant un break; en dessous de $chiffre = (int)readline('Entrez une valeur: '); mais à ce moment là la boucle s'arrête bien mais le message Bravo vous avez trouvé le bon chiffre s'affiche... même si la valeur renseignée n'est pas la bonne.
  • Comment afficher un message différent lorsque la valeur rentrée est fausse dans ce cas là ?
  • Si maintenant je voulais laisser 3 chances à l'utilisateur, quel code je dois rajouter ?
Thanks !
 
Solution
@Nicolas , je crois qu'on tient le bon bout... par forcément la plus académique, mais c'est une bonne base..

PHP
<?php
$chiffre = null;
$tentative = 1; // déclaré à 1, à 3 il n'y aura plus de tentative possible

while ($chiffre !== 10 && $tentative <= 3 ) {
    $chiffre = (int)readline("\nEntrez une valeur: ");
    $tentative++;// on incrémente le nombre de tentative

if ($chiffre == 10) {
        echo "Bravo vous avez trouvé le bon chiffre";
    }
    else {
    echo"\nAie aie, la réponse n'est pas correcte";
    }
} // fin du while ici

if ($tentative >= 3 && $chiffre != 10){ // si le nombre de tentative est = ou sup à 3 et que la réponse n'est pas 10
    echo"\nDésolé plus de tentative possible";
    }...

Hamza

Membre
PHP
while ($chiffre !== 10 && $tentative < 3 ) { // < 3 au lieu de <= 3
J'ai bloqué longtemps sur ce bout de code à essayer de comprendre comment, si $tentative < 3 on bénéficiait de 3 tentatives...
En fait le code n'empêche pas le nombre de tentative d'arriver à 3 mais empêche une nouvelle tentative si le compte est à 3.
avec un <= 3 on aurait eu droit à 4 tentatives, c'est pourquoi yule partait de 1.

:cool:
 

Ces discussions pourraient vous intéresser...

Yo ! J'ai une div sans bordure remplie de cellules horizontales auxquelles j'applique une bordure sur le bord bas pour les séparer entre elles. Le problème c'est que la dernière je ne veux pas de bordure basse puisqu'il n'y a plus de cellule sous elle. Je n'ai pas la main sur le HTML...
Recevez-vous ce type d'erreur avec vos fichiers PHP ? ErrorException: Method ReflectionParameter::getClass() is deprecated Des infos à ce sujet ? :unsure: Merci.
Bonjour à toutes et à tous, Dans la lignée des exercices PHP X, je vous propose aujourd'hui un exercice JavaScript ! Il est très simple et ne nécessite qu'une seule fonction. C'est une ligne de code que l'on doit trouver, elle doit être capable de fusionner 2 tableaux. Voici des...
Haut