全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

java菜单递归

发布时间:2023-06-15 16:12:00
发布人:zyh

  下面是一个使用递归实现的简单示例,展示了在Java中创建菜单的方法:  

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Menu {
private String name;
private List<Menu> subMenus;

public Menu(String name) {
this.name = name;
this.subMenus = new ArrayList<>();
}

public String getName() {
return name;
}

public void addSubMenu(Menu menu) {
subMenus.add(menu);
}

public List<Menu> getSubMenus() {
return subMenus;
}

public void displayMenu() {
System.out.println("== " + name + " ==");

for (int i = 0; i < subMenus.size(); i++) {
System.out.println((i + 1) + ". " + subMenus.get(i).getName());
}

System.out.println("0. 返回上级菜单");

Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();

if (choice >= 0 && choice <= subMenus.size()) {
if (choice == 0) {
return;
} else {
subMenus.get(choice - 1).displayMenu();
}
} else {
System.out.println("无效的选择,请重新输入");
displayMenu();
}
}

public static void main(String[] args) {
Menu mainMenu = new Menu("主菜单");
Menu subMenu1 = new Menu("子菜单1");
Menu subMenu2 = new Menu("子菜单2");
Menu subSubMenu1 = new Menu("子子菜单1");

mainMenu.addSubMenu(subMenu1);
mainMenu.addSubMenu(subMenu2);
subMenu1.addSubMenu(subSubMenu1);

mainMenu.displayMenu();
}
}

  在这个示例中,我们创建了一个`Menu`类来表示菜单,每个菜单有一个名称和一组子菜单(使用`LisMenu存储)。Menu类还提供了一些方法,用于添加子菜单、获取子菜单列表以及显示菜单。

  在`displayMenu()`方法中,我们首先打印当前菜单的名称和子菜单列表。然后,读取用户的选择,并根据选择执行相应的操作。如果选择为0,表示返回上级菜单;否则,根据选择索引获取对应的子菜单,并递归调用子菜单的`displayMenu()`方法,以显示下一级菜单。

java菜单递归

  在`main()`方法中,我们创建了一个示例菜单结构,并调用主菜单的`displayMenu()`方法来显示菜单并接受用户输入。

  您可以根据需要扩展和修改这个示例,以满足您具体的菜单需求。

#java菜单递归

相关文章

矩阵的2范数与向量的2范数有什么关系?

矩阵的2范数与向量的2范数有什么关系?

2023-10-15
什么是逆强化学习?

什么是逆强化学习?

2023-10-15
什么是KPI?

什么是KPI?

2023-10-15
NAS是什么?

NAS是什么?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取