comportement while
Posté : 19 mars 2017, 19:41
Bonjour,
je dois réaliser un distributeur de boisson comme exercice.
Pour rendre la monnaie je fais une boucle while mais ça ne fonctionne pas comme je le voudrais.
Le comportement est étrange et je ne me l'explique pas d'où mon message pour avoir une explication.
Pour exemple un Fanta moyen avec une pièce de 2 et une pièce de 1, la boucle saute.
Merci de m'éclairer.
Stef
je dois réaliser un distributeur de boisson comme exercice.
Pour rendre la monnaie je fais une boucle while mais ça ne fonctionne pas comme je le voudrais.
Le comportement est étrange et je ne me l'explique pas d'où mon message pour avoir une explication.
Pour exemple un Fanta moyen avec une pièce de 2 et une pièce de 1, la boucle saute.
Merci de m'éclairer.
Stef
$taille= array('Petite', 'Moyenne', 'Grande');
$boisson['Coca']['Petite']=2;
$boisson['Coca']['Moyenne']=2.4;
$boisson['Coca']['Grande']=3;
$slogan['Coca']='Always COOL';
$image['Coca']='<img class="img-canette" src="images/coca.jpg" alt=""/>';
$boisson['Fanta']['Petite']=2;
$boisson['Fanta']['Moyenne']=2.5;
$boisson['Fanta']['Grande']=3;
$slogan['Fanta']='Eclate-toi avec FANTA';
$image['Fanta']='<img class="img-canette" src="images/fanta.jpg" alt=""/>';
$boisson['Icetea']['Petite']='Indisponibl';
$boisson['Icetea']['Moyenne']=2.7;
$boisson['Icetea']['Grande']=3.3;
$slogan['Icetea']='Drink Positive';
$image['Icetea']='<img class="img-canette" src="images/icetea.jpg" alt=""/>';
$boisson['Kro']['Petite']='Indisponibl';
$boisson['Kro']['Moyenne']=3.7;
$boisson['Kro']['Grande']=4.3;
$slogan['Kro']="Enfin une française qui est sûre d'arriver en demi";
$image['Kro']='<img class="img-canette" src="images/kro.jpg" alt=""/>';
$boisson['7up']['Petite']=1;
$boisson['7up']['Moyenne']=2;
$boisson['7up']['Grande']='Indisponibl';
$slogan['7up']='Live life on the up';
$image['7up']='<img class="img-canette" src="images/7up.jpg" alt=""/>';
$boisson['Orangina']['Petite']=2;
$boisson['Orangina']['Moyenne']=3.2;
$boisson['Orangina']['Grande']='Indisponibl';
$slogan['Orangina']='Shake the World';
$image['Orangina']='<img class="img-canette" src="images/orangina.jpg" alt=""/>';
$piece['2euro']=2;
$piece['1euro']=1;
$piece['50cents']=0.5;
$piece['20cents']=0.2;
$piece['10cents']=0.1;
$piece['5cents']=0.05;
$piece['2cents']=0.02;
$piece['1cents']=0.01;
$stock_piece['2euro']=4;
$stock_piece['1euro']=2;
$stock_piece['50cents']=0;
$stock_piece['20cents']=1;
$stock_piece['10cents']=1;
$stock_piece['5cents']=5;
$stock_piece['2cents']=5;
$stock_piece['1cents']=5;
if (isset($_POST['canette'])){
if ($boisson[$_POST['canette']][$_POST['taille']] == 'Indisponibl'){
echo "<div class='annonce-non'>";
echo "Désolé, nous n'avons plus de canette de ".$_POST['canette']." disponible dans cette taille";
echo "</div>";
}else{
foreach ($piece as $index_piece2 => $valeur_piece2 ){
$total = $total + $_POST[$index_piece2] * $piece[$index_piece2];
}
if ($total < $boisson[$_POST['canette']][$_POST['taille']]){
echo "<div class='annonce-non'>";
echo "Vous n'avez pas mis assez d'argent dans le monnayeur";
echo "</div>";
}else{
$monnaie = $total - $boisson[$_POST['canette']][$_POST['taille']];
foreach ($stock_piece as $index_stock => $valeur_stock){
if ($piece[$index_stock] <= $monnaie){
$fond_caisse = $fond_caisse + $stock_piece[$index_stock] * $piece[$index_stock] ;
}
}
if ($fond_caisse < $monnaie){
echo "<div class='annonce-non'>";
echo "Désolé, nous n'avons pas assez de monnaie dans le Drink o Matik, choisissez une autre canette";
echo "</div>";
}else{
echo "<div class='container'>";
echo "<div class='row'>";
echo "<div class='col-12 text-center'>";
echo "Voici votre canette de ".$_POST['canette']." de ".$_POST['taille']." taille.<br />";
echo "</div>";
echo "<div class='col-12 text-center mt-5'>";
echo $image[$_POST['canette']];
echo "</div>";
echo "<blockquote class='col-12 quote-card blue-card text-center mt-5'>";
echo "<p> ".$slogan[$_POST['canette']]." </p>";
echo "</blockquote>";
echo "<div class='col-12 text-center mt-5'>";
echo "Cette canette vous à coûté ".$boisson[$_POST['canette']][$_POST['taille']]." €.<br />";
echo "</div>";
echo "<div class='col-12 text-center mt-5'>";
echo "Votre monnaie est de ".$monnaie." €";
echo "</div>";
echo "<div class='col-12 text-center mt-5'>";
////////////// RENDRE LA MONNAIE ////////////////////////////////////
foreach ($piece as $index_piece3 => $valeur_piece3){
while ($monnaie >= $valeur_piece3 && $stock_piece[$index_piece3] > 0 ){
echo "<pre>";
print_r ($monnaie);
echo "</pre>";
echo "<pre>";
print_r ($valeur_piece3);
echo "</pre>";
echo "<pre>";
print_r ($stock_piece[$index_piece3]);
echo "</pre>";
echo "<img src='images/".$index_piece3.".png' alt='piece de ".$index_piece3."'/>";
$monnaie = $monnaie - $valeur_piece3;
$stock_piece[$index_piece3]--;
}
}
echo "</div>";
}
}
}
}else{
/////////////////// CREATION DU TABLEAU DU DISTRIBUTEUR ///////////////////////////////////
echo "<div class='container'>";
echo "<div class='row'>";
echo "<table class='col-12 table table-inverse'>";
echo "<tr >";
echo "<td class='font-bold-white text-center'>Drink O Matik</td>";
echo "</tr>";
echo "<tr>";
echo "<td class='font-bold-red'>Boisson</td>";
foreach ($taille as $index_taille => $valeur_taille){
echo "<td class='font-bold-red'>".$valeur_taille."</td>";
}
echo "</tr>";
foreach ($boisson as $index_boisson => $value_boisson){
echo "<tr><td class='font-bold-red'>".$index_boisson."</td>";
foreach ($value_boisson as $index_prix => $value_prix){
echo "<td>".$value_prix."€</td>";
}
echo "</tr>";
}
echo "</table>";
/////////////// CREATION DU FORMULAIRE DE SELECTION DE CANETTES //////////////
echo "<form action='index.php' method='post'>";
echo "<div class='col-12 offset-4 mt-5'>";
echo "<select name='canette' class='btn btn-success'>";
foreach ($boisson as $index_boisson => $value_boisson){
echo "<option value='".$index_boisson."'>".$index_boisson."</option>";
}
echo "</select>";
echo "<select name='taille' class='btn btn-success offset-1'>";
foreach ($taille as $index_taille => $valeur_taille){
echo "<option value='".$valeur_taille."'>".$valeur_taille."</option>";
}
echo "</select>";
echo "</div>";
//////////////////////// CREATION DU MONNAYEUR ////////////////////////////////
echo "<div class='row justify-content-between mt-5'>";
foreach ($piece as $index_piece => $valeur_piece){
echo "<div class='col-1'>";
echo "<img src='images/".$index_piece.".png' alt='piece de".$index_piece."'/><br />";
echo "<input class='btn1 btn-danger' type='number' name='".$index_piece."'/><br />";
echo "</div>";
}
echo "</div>";
echo "<div class='col-12 mt-5'>";
echo "<input class='btn btn-primary btn-lg offset-5' type='submit' value='Commander' class='col-12'/>";
echo "</div>";
echo "</form>";
}
echo "</div>";
echo "</div>";