Java 如何要求用户在程序的最后部分输入是否要继续?

Java 如何要求用户在程序的最后部分输入是否要继续?,java,Java,我正在做一个随机代码,只是为了帮助我学习从罗马书写日语。 我一直在寻找如何询问用户是否愿意继续练习的解决方案 我是一名代码初学者,因此,如果有任何关于我应该和不应该在代码上做什么以及如何使代码更高效的建议,这对我来说意义重大。提前谢谢你的帮助:D 编辑:我为自己做了这个,因为我找不到一个单词随机化器来跟踪随机单词的历史,因为我需要它来检查我是否写对了字符。我之所以问这个问题,是因为我想让这个代码看起来像是别人在使用它 public static void main(String[] args)

我正在做一个随机代码,只是为了帮助我学习从罗马书写日语。 我一直在寻找如何询问用户是否愿意继续练习的解决方案

我是一名代码初学者,因此,如果有任何关于我应该和不应该在代码上做什么以及如何使代码更高效的建议,这对我来说意义重大。提前谢谢你的帮助:D

编辑:我为自己做了这个,因为我找不到一个单词随机化器来跟踪随机单词的历史,因为我需要它来检查我是否写对了字符。我之所以问这个问题,是因为我想让这个代码看起来像是别人在使用它

public static void main(String[] args) 
{
    String character;
    String cont;
    int quantity;
    int loops = 0;
    int lines;
    int terminate = 0;
    
    Scanner scanner = new Scanner(System.in);
    
    while (terminate == 0) 
    {
        System.out.print("What do you want to practice? (K/H) ");
        character = scanner.nextLine();
        
        while(!character.equals("K") && !character.equals("H")) 
        {
            System.out.println("\nInput is invalid");
            System.out.print("What do you want to practice? (only type K or H) ");
            character = scanner.nextLine();
        }
        
        
        System.out.print("\nHow many lines do you want to generate? ");
        lines = scanner.nextInt();
        quantity = lines * 11;
        System.out.println("");
        
        String[] hiragana ={"a", "i", "u", "e", "o", "n", 
                "ka", "ki", "ku", "ke", "ko", "ga", "gi", "gu", "ge", "go",
                "sa", "shi", "su", "se", "so", "za", "ji", "zu", "ze", "zo",
                "ta", "chi", "tsu", "te", "to", "da", "dji", "dzu", "de", "do",
                "na", "ni", "nu", "ne", "no",
                "ha", "hi", "fu", "he", "ho", "ba", "bi", "bu", "be", "bo", "pa", "pi", "pu", "pe", "po",
                "ma", "mi", "mu", "me", "me",
                "ya", "yu", "yo",
                "ra", "ri", "ru", "re", "ro",
                "wa", "wo"};
        String[] katakana = {"a", "i", "e", "o", "u"};
        
        Random r=new Random();
        
        if (character.equals("H")) 
        {
            while (quantity > 0) 
            {
                if (quantity > 1) 
                {
                    loops++;
                    int randomNumber=r.nextInt(hiragana.length);
                    System.out.print(hiragana[randomNumber] + ", ");
                    quantity = quantity - 1;
                    if (loops > 10) 
                    {
                        loops = 0;
                        System.out.println("\n");
                    }
                }
                else if (quantity > 0)
                {
                    loops++;
                    int randomNumber=r.nextInt(hiragana.length);
                    System.out.print(hiragana[randomNumber]);
                    quantity = quantity - 1;
                    if (loops > 10) 
                    {
                        loops = 0;
                        System.out.println("\n");
                    }
                }
            }
        }
        else if (character.equals("K")) 
        {
            while (quantity > 0) 
            {
                if (quantity > 1) 
                {
                    loops++;
                    int randomNumber=r.nextInt(katakana.length);
                    System.out.print(katakana[randomNumber] + ", ");
                    quantity = quantity - 1;
                    if (loops > 10) 
                    {
                        loops = 0;
                        System.out.println("\n");
                    }
                }
                else if (quantity > 0)
                {
                    loops++;
                    int randomNumber=r.nextInt(katakana.length);
                    System.out.print(katakana[randomNumber]);
                    quantity = quantity - 1;
                    if (loops > 10) 
                    {
                        loops = 0;
                        System.out.println("\n");
                    }
                }
            }
        }
        
        System.out.print("Do you want to continue practicing? (Y/N) ");
        cont = scanner.nextLine();
        
        if (cont.equals("Y")) 
        {
            terminate = 0;
            System.out.print("test");
        }
        else if (cont.equals("N")) 
        {
            terminate = 1;
            System.out.print("Have a nice day! :D");
        }
    }
        
    scanner.close();
    
}

您可以使用do-while循环交换while。在程序结束时,当您询问用户是否希望继续时,程序应获取用户的答案,然后在do while循环条件下使用


do{\\do STUFF HERE}while(con.equals(“Y”)

你可以试试这样的方法

boolean isContinue = true;
Scanner in = new Scanner(System.in);

do{
    System.out.print("Do you want to continue practicing? (Y/N)");
    String ans = in.nextLine();

    switch(ans) 
    {
        case "Y" -> {//Put your code here}
        case "N" -> 
             {
               isContinue = false;
               System.out.println("Bye");
             }
while(isContinue);

当我这样做的时候,程序不会给出让用户给出答案的选项。它只是终止了。有什么我做错了吗?但是它会以“你想继续练习吗?”开始程序。我可以在Do-while循环的顶部放置相同的代码,然后询问用户是否想继续练习,但我觉得有另一种解决方案。无论如何,谢谢你的帮助,它确实修复了它,即使它不是我最初想要的样子。