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

标签: java while-loop switch-statement exit continue


【解决方案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();
            .....
    

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      相关资源
      最近更新 更多