千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java菜单递归

java菜单递归

来源:千锋教育
发布人:zyh
时间: 2023-06-15 16:12:00 1686816720

  下面是一个使用递归实现的简单示例,展示了在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()`方法来显示菜单并接受用户输入。

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

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT