在java中输入退出选择之前,我如何继续在switch case中进行选择[重复]

Posted

技术标签:

【中文标题】在java中输入退出选择之前,我如何继续在switch case中进行选择[重复]【英文标题】:how do i keep taking choices in switch case until exit choice is entered in java [duplicate] 【发布时间】:2018-07-21 13:04:40 【问题描述】:
    我想继续让用户做出选择,直到他给出退出声明。 如果我在这段代码中使用 while 循环,如何退出? 除了 switch case 之外,还有什么其他方式可以让用户做出选择:​​i> 如果我尝试为此使用 while 循环,那么它将进入无限循环:

代码:

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);

 

【问题讨论】:

我正在写一个答案,但后来意识到我不知道你所有的计数器变量应该做什么。如果您可以添加清晰的问题陈述,这将对您的问题有所帮助。 其实先生,计数器是用于减少每期后的书籍副本数量,最初是5。 【参考方案1】:

如果您想继续从用户那里获取输入,直到他们给出退出命令,那么您需要继续在 while 循环中获取输入。将 c=in.nextLine() 移动到 switch 语句之前的 while 循环中。

如果您还想提示用户,请在 switch 语句结束后的循环末尾添加一个 print 语句,而不是将 c=in.nextLine() 移动到 print 语句之后的 while 循环末尾。比如:

System.out.print("Enter the title of another book: ");
c=in.nextLine();

【讨论】:

【参考方案2】:

我认为您正在寻找的是将您的 nextLine 移动到 while 循环中。

这部分代码:

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

到这里:

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

    while(d==0)
    
        c=in.nextLine();
        .....

【讨论】:

以上是关于在java中输入退出选择之前,我如何继续在switch case中进行选择[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Java 程序在捕获到异常后退出?

购物车程序

如何在退出前安全地关闭所有线程[重复]

按顺序附加异步响应 swit 3

java中如何终止当前方法,但不退出系统仍然继续下个方法计算?

如何在Java中处理一维数组的跳过输入