You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java遍历一维数组与二维数组:实现问答交互功能

嘿,我来帮你搞定这个交互式问卷的问题!根据你的需求,我整理了一个完整的Python实现方案,不仅能按顺序展示三个问题和对应选项,还能处理用户输入、验证有效性,一步步推进到下一个问题。

解决方案:交互式问卷实现

完整代码示例

# 定义问题数组(一维),按需求顺序排列
questions = [
    "Favourite Sweet",
    "Favourite subject at Hogwarts",
    "Dream Vacation"
]

# 定义对应选项的二维数组,每个子列表对应一个问题的选项,数量匹配需求
options = [
    # 8种糖果选项
    ["Chocolate Frog", "Bertie Bott's Every Flavour Beans", "Cauldron Cakes", 
     "Licorice Wands", "Fizzing Whizbees", "Drooble's Best Blowing Gum", 
     "Pepper Imps", "Acid Pops"],
    # 10门霍格沃茨科目选项
    ["Charms", "Defence Against the Dark Arts", "Herbology", "History of Magic", 
     "Potions", "Transfiguration", "Astronomy", "Divination", 
     "Care of Magical Creatures", "Arithmancy"],
    # 7个度假地选项
    ["Hogsmeade Village", "The Black Lake", "Diagon Alley", "Gringotts Wizarding Bank", 
     "Hogwarts Castle Grounds", "The Forbidden Forest", "Ministry of Magic"]
]

# 遍历每个问题,依次展示并获取输入
for q_idx in range(len(questions)):
    current_question = questions[q_idx]
    current_options = options[q_idx]
    
    # 打印问题标题
    print(f"\n=== {current_question} ===")
    # 打印带编号的选项(从1开始)
    for opt_num, option in enumerate(current_options, start=1):
        print(f"{opt_num}. {option}")
    
    # 输入验证:确保用户输入有效编号
    while True:
        user_input = input("请输入你选择的选项编号:")
        if user_input.isdigit():
            choice_num = int(user_input)
            if 1 <= choice_num <= len(current_options):
                break
            else:
                print(f"无效输入!请输入1到{len(current_options)}之间的数字")
        else:
            print("无效输入!请输入数字编号")
    
    # 反馈用户选择,然后进入下一个问题
    selected_option = current_options[choice_num - 1]
    print(f"\n你选择了:{selected_option}\n")

print("问卷完成!感谢参与😊")

代码解释

  • 数组定义:questions一维数组严格按你要求的顺序存放三个问题;options二维数组的每个子列表对应前一个数组中同索引的问题,选项数量完全匹配(8/10/7)。
  • 循环遍历:通过for循环遍历问题索引,自动关联对应选项,避免重复写冗余代码。
  • 选项编号:用enumerate(..., start=1)让选项从1开始编号,完全符合你要的1-8、1-10、1-7格式。
  • 输入验证:添加了循环验证逻辑,防止用户输入非数字或超出范围的编号,让程序更健壮。

常见问题排查

如果你的原有代码出现问题,大概率是这几个原因:

  1. 索引不匹配:二维选项数组的顺序和一维问题数组不一致,导致问题和选项对应错误;
  2. 编号起始错误:选项从0开始编号,不符合需求的1开头格式;
  3. 无循环逻辑:手动写每个问题的打印/输入代码,导致重复且容易出错;
  4. 输入处理缺失:没有获取用户输入的逻辑,或者输入后没有推进到下一个问题的触发机制。

内容的提问来源于stack exchange,提问作者LLgood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:38:19