如何根据switch case用例数量动态初始化变量(支持任意用例数)
动态处理任意数量Switch Case用例的实现
下面是修改后的代码,能够自动识别cc中的所有case并动态收集每个case的语句,不再局限于固定数量的用例:
statment = [] body = [] switch = [] cc = [] cases = [] # 用这个列表存储所有case,每个元素是对应case的语句列表 current_case = [] for idx, token in enumerate(cc): # 跳过第一个元素的索引判断,避免索引越界 if idx == 0: current_case.append(token) continue # 当遇到上一个token是break时,结束当前case,开始新的case if cc[idx-1] == "break": cases.append(current_case) current_case = [] current_case.append(token) # 处理最后一个没有break结尾的case if current_case: cases.append(current_case) print(statment) print(switch) # 遍历输出所有case for i, case in enumerate(cases, 1): print(f"case{i}: {case}")
关键修改说明:
- 移除了手动定义的
case1、case2,改用**列表cases**统一管理所有case,每个子列表对应一个case的语句集合。 - 使用
current_case临时存储当前正在收集的case语句,遍历cc时:- 当检测到上一个元素是
"break"时,将current_case存入cases,并重置current_case开始收集下一个case。 - 持续将当前token加入
current_case。
- 当检测到上一个元素是
- 增加了对最后一个无break结尾的case的处理,避免遗漏。
- 最后通过循环遍历
cases输出所有case,支持任意数量的用例展示。
内容的提问来源于stack exchange,提问作者omar ezzat
相关产品推荐
相关产品推荐

