Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果输入了无效选项,如何返回到多个选项?_Java - Fatal编程技术网

Java 如果输入了无效选项,如何返回到多个选项?

Java 如果输入了无效选项,如何返回到多个选项?,java,Java,我有一个程序,它有几个方法,可以用不同的方式操作给定的字符串。我需要给用户一个菜单来选择要执行的方法。如果输入了无效选项,则需要提供菜单并允许用户重试。方法运行后,还需要给用户选择另一个选项或结束程序的选项。我在编写选项和运行不同的方法方面没有问题,但我不知道如何再次运行它。以下是我在测试课上的学习内容 import java.util.Scanner; public class TestStringManip { //=================MAIN=======

我有一个程序,它有几个方法,可以用不同的方式操作给定的字符串。我需要给用户一个菜单来选择要执行的方法。如果输入了无效选项,则需要提供菜单并允许用户重试。方法运行后,还需要给用户选择另一个选项或结束程序的选项。我在编写选项和运行不同的方法方面没有问题,但我不知道如何再次运行它。以下是我在测试课上的学习内容

import java.util.Scanner;


public class TestStringManip {
        //=================MAIN===============
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter a string: ");
        String input = in.nextLine();

        StringManipulation newString = new StringManipulation(input);

        String menu = newString.getMenu();
        System.out.println(menu);
        int option = in.nextInt();

        if (option == 1)
        {
            String upperCase = newString.getUpperCase(input);
            System.out.println(upperCase);
        }

        else
        {
            System.out.println("Error: must select options 1-5 from menu");
            System.out.println(menu);
            int option2 = in.nextInt();
        }

    }

}
我尝试了一些新东西。这是我现在拥有的。它现在将再次打印菜单,但当我选择一个新选项时,它不会调用该方法

import java.util.Scanner;


public class TestStringManip {
        //=================MAIN===============
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter a string: ");
        String input = in.nextLine();

        StringManipulation newString = new StringManipulation(input);

        String menu = "\n Please select an option to perform"
                + "\n1 (1) Get all uppercase letters."
                + "\n2 (2) Get every second letter."
                + "\n3 (3) Replace vowels with _ "
                + "\n4 (4) Get a count of all vowels."
                + "\n5 (5) Get position of all vowels.";
        System.out.println(menu);
        int option = in.nextInt();


        do
        {
            if (option == 1)
            {
                newString.getUpperCase(input);
            }

            else if (option == 2)
            {
                newString.getEverySecond(input);
            }

            else
            {
                System.out.println("Error must select 1-5");
                System.out.println(menu);
                option = in.nextInt();
            }
        }while (option < 1 || option > 5);
    }

}
import java.util.Scanner;
公共类TestStringManip{
//=========================主要===============
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(系统输入);
System.out.print(“输入字符串:”);
字符串输入=in.nextLine();
StringManipulation newString=新的StringManipulation(输入);
字符串菜单=“\n请选择要执行的选项”
+“\n1(1)获取所有大写字母。”
+“\n2(2)获取每两个字母。”
+“\n3(3)将元音替换为”
+“\n4(4)获取所有元音的计数。”
+“\n5(5)获取所有元音的位置。”;
系统输出打印项次(菜单);
int option=in.nextInt();
做
{
如果(选项==1)
{
getUpperCase(输入);
}
否则如果(选项==2)
{
newString.getEverySecond(输入);
}
其他的
{
System.out.println(“错误必须选择1-5”);
系统输出打印项次(菜单);
option=in.nextInt();
}
}而(选项<1 | |选项>5);
}
}
do{//do…while循环
如果(选项==1)
{
字符串大写=newString.getUpperCase(输入);
System.out.println(大写);
}
其他的
{
System.out.println(“错误:必须从菜单中选择选项1-5”);
系统输出打印项次(菜单);
option=in.nextInt();
}    
}而(选项<1 | |选项>5);//只要小于1或大于5,就保持循环

使用do。。。在循环中检查选项是否在1到5之间时,请注意,我删除了OpTe2变量并在变量“选项”上使用/检查,而不是

将所有的东西都包装在一个循环中。考虑创建一个显示菜单并等待用户输入并返回它们所选择的方法的方法。将调用包装在一个循环中重复,直到用户选择“退出”选项…您还可以编写一个输入方法,该方法接受一系列有效选项,并且在用户选择正确选项之前不会返回。。。
do { // do ... while loop
    if (option == 1)
            {
                String upperCase = newString.getUpperCase(input);
                System.out.println(upperCase);
            }

            else
            {
                System.out.println("Error: must select options 1-5 from menu");
                System.out.println(menu);
                option = in.nextInt();
            }    
}   while (option < 1 || option > 5); // keep looping as long as it is less than 1 or more than 5