2017-04-11 1 views
-2

Bonjour, je suis nouveau à la programmation et j'ai reçu un «programme de pièces de monnaie minimum» pour une classe que je prends. J'ai fini le code principal pour ça et ça fonctionne bien. Mais une partie des paramètres est que si l'utilisateur entre un zéro, le programme va quitter, sinon le programme continuera à faire une boucle. J'ai essayé de trouver des réponses, mais aucune n'a fonctionné jusqu'à présent.Comment puis-je quitter un programme via l'invite, comment puis-je exécuter une boucle

Voici ce que j'ai, mais je n'arrive pas à saisir la boucle. C'est notre première affectation non-organigramme. Aussi, si vous avez des suggestions sur l'amélioration de ce que j'ai déjà ce qui serait également apprécié (ce professeur est un classeur très sévère).

Comment puis-je faire sortir le programme par l'utilisateur en entrant zéro, et comment puis-je garder la programmation en boucle jusqu'à ce que l'utilisateur entre zéro. A ce jour le programme se déroule juste une fois et quand j'entre zéro, il indique la quantité minimum de changement

package mincoins; 

import java.util.Scanner; 

public class MinCoins 
{ 

public static void main(String[] args) 
{ //start code 

    //initialization 
    Scanner input = new Scanner(System.in); //create input class to get change data 
    int amount, quartercount = 0, dimecount = 0, nickelcount = 0, penniecount = 0; 
    amount = 1; 


    while (amount != 0) 
    { 

     System.out.println("Please Enter amount of change (1-99) or ZERO to EXIT"); 
     System.out.println(""); 

     amount = input.nextInt(); 

     { 

      while (amount > 25) 
      { 
       amount = amount - 25; 
       quartercount++; 
      } 

      while (amount > 10) 
      { 
       amount = amount - 10; 
       dimecount++; 
      } 

      while (amount > 5) 

      { 
       amount = amount - 5; 
       nickelcount++; 
      } 
      System.out.println(""); 

      System.out.println("Quarters: " + quartercount); 

      System.out.println("Dimes: " + dimecount); 

      System.out.println("Nickles: " + nickelcount); 

      System.out.println("Pennies: " + amount); 

      System.out.println(""); 

     } 
    } 


}//main 

}//class 
+2

Ok, puisque c'est votre première fois de poster une question, tout d'abord je demande que vous pouvez définir une question à laquelle vous voulez répondre? Quel est exactement le problème auquel vous êtes confronté? Ensuite, pouvez-vous également avoir une lecture à la documentation. "Comment puis-je poser une bonne question?" -> https://stackoverflow.com/help/how-to-ask –

+0

Salut j'ai ajouté plus d'informations, j'espère que c'est plus facile à comprendre. Je veux savoir comment je peux quitter le programme après qu'un utilisateur entre dans l'invite, et comment garder le programme en boucle si l'utilisateur n'entrent pas dans l'invite de sortie. –

+0

'if (amount == 0) return;' – Bohemian

Répondre

0

Votre programme (souvent) se termine après 1 boucle parce que votre code réduit amount à mesure qu'elle progresse, et si le nombre de pennies requis est zéro, la boucle se termine car amount est réduite à zéro.

Essayez ceci:

while (true) { 
    // print and read amount 
    if (amount == 0) 
     break; 
    // rest of code 
}