comment puis-je continuer à prendre des choix dans le cas du commutateur jusqu'à ce que le choix de sortie soit entré dans java [dupliquer]


Cette question a déjà une réponse ici:

  1. je veux continuer à prendre des choix de l'utilisateur jusqu'à ce qu'il donne une instruction exit.
  2. Comment je peux sortir de la boucle while si je l'utilise dans ce code?
  3. Y a-t-il un autre moyen de prendre choix de l'utilisateur plutôt que de changer de boîtier:
  4. Et si j'essaie d'utiliser while loop pour cela, alors il va dans une boucle infinie:

Code:

import java.util.Scanner;
class lib
{
public static void main(String args[])
{
    Scanner in=new Scanner(System.in);
    String c;
    int j=5,a=5,s=5,cg=5;
    int d=0;
    System.out.println("Available Copies :");
    System.out.println("java=5,ada=5,sp=5,cg=5");
    System.out.println("enter book title");
    //System.out.println("enter exit for exit if don't want to search");
    c=in.nextLine();
    while(d==0)
    {
        switch(c)
       {
        case "java":
            System.out.println("author is herbert");
            System.out.println("price :500");
            j--;
            break;

        case "ada":

            System.out.println("author is corman");
            System.out.println("price :600");
            a--;
            break;

        case "sp":

            System.out.println("author is dhamdhire");
            System.out.println("price :550");
            s--;
            break;

        case "cg":

            System.out.println("author is pearson");
            System.out.println("price :700");
            cg--;
            break;
        case "exit":
            d++;
            break;

        default:
            System.out.println("book not available");
    }
    }
    if(j!=0)                                      
    System.out.println("number of available copies is"+j);

 }
Author: Harsha pps, 2018-07-21

2 answers

Si vous voulez continuer à prendre l'entrée de l'utilisateur jusqu'à ce qu'il donne la commande exit, vous devez continuer à prendre l'entrée dans la boucle while. Déplacer c=in.nextLine() dans la boucle while juste avant l'instruction switch.

Si vous voulez demander à l'utilisateur d'ajouter ensuite de l'impression d'un relevé à la fin de la boucle juste après l'instruction switch se termine, et, au lieu de passer c=in.nextLine() à la fin de la boucle while juste après l'instruction print. Quelque chose comme:

System.out.print("Enter the title of another book: ");
c=in.nextLine();
 -1
Author: buckeyeguyy, 2018-07-21 13:23:55

Je pense que ce que vous recherchez déplace votre nextLine à l'intérieur de la boucle while.

Cette partie du code:

//System.out.println("enter exit for exit if don't want to search");
    c=in.nextLine();
    while(d==0)
    {
        .....

À ceci:

//System.out.println("enter exit for exit if don't want to search");

    while(d==0)
    {
        c=in.nextLine();
        .....
 -1
Author: Ogiez, 2018-07-21 13:13:12