Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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_Recursion_Methods - Fatal编程技术网

Java 从内部调用方法?

Java 从内部调用方法?,java,recursion,methods,Java,Recursion,Methods,好的,我有一个显示菜单并返回用户选择的方法 public class Menu { public static int menuSelect(){ Scanner input = new Scanner(System.in); System.out.println("Hello, Please Select A Function: "); System.out.println("1) Sort All Banks Alphabetically "); System.out.println

好的,我有一个显示菜单并返回用户选择的方法

public class Menu {


public static int menuSelect(){

Scanner input = new Scanner(System.in);

System.out.println("Hello, Please Select A Function: ");
System.out.println("1) Sort All Banks Alphabetically ");
System.out.println("2) Calculate Interest And Show Balance ");
System.out.println("3) Transfer Money ");
System.out.println("4) Calulate Sum & Average Of All Accounts: ");
System.out.println("5) Richest Account: ");
System.out.println("6) Poorest Account: ");

int select = input.nextInt();

Menu.menuSelect();

 //i tried this as adding Menu.menuSelect(); 
 //after the return threw an error.
 // but surprise suprise this doesnt actually 
//let the method return anythign to select

  return select;
}
我的想法是,我希望菜单出现,用户选择一个函数,函数发生,然后菜单调用自己,直到另行通知。 但是我不知道怎么做。
任何帮助都将不胜感激。

从自身调用相同的方法称为a,在您的情况下,它是无限的。你显然不需要它

你想要这样的东西:

private static int getInput() {
    int choice = menuSelect();
    while(choice < 1 || choice > 6) {
        System.out.println("Invalid choice, please re-enter")
        choice = menuSelect();
    }
    return choice;
}
private static int getInput(){
int choice=menuSelect();
而(选项<1 | |选项>6){
System.out.println(“选择无效,请重新输入”)
choice=menuSelect();
}
回报选择;
}

请注意,给
menuSelect
一个
public
修饰符是不好的,您不希望类外的任何人都可以访问它。

这里有一个无限递归。为什么不使用while循环呢?我喜欢这样做的想法,哈哈。然后习惯StackOverflowException。你肯定不能做你喜欢的一切。。。。就像有一个永无止境的递归,并期望它结束或做一些其他的事情。不,我的想法是,我会添加一个类似exit的选项,它将system.exit(0);只是想理解这段代码,这是否超出了menuSelect方法的范围?