如何循环遍历带增量后缀的变量(如daywinner1、daywinner2)?
解决带增量后缀变量的循环遍历问题
你现在的问题是单独定义了daywinner1、daywinner2、daywinner3这类变量,没法通过循环递增后缀来遍历它们,而且原代码里的olympia[][]写法也存在语法错误。
正确实现思路:用数组统一存储winner值
别单独定义多个离散变量,把输入的winner值放到一个数组里,这样就能和olympia的索引一一对应,直接通过循环处理:
string[][] olympia = { new string[]{"a","b","c" }, new string[]{"d","e"}, new string[]{"f","g","h","j","k"} }; // 将输入的winner值存入数组,统一管理 int[] dayWinners = new int[3]; for (int i = 0; i < dayWinners.Length; i++) { dayWinners[i] = int.Parse(Console.ReadLine()); } // 循环遍历,通过索引对应访问olympia和winner值 for (int i = 0; i < olympia.Length; i++) { // 增加合法性判断,避免数组越界报错 if (dayWinners[i] >= 0 && dayWinners[i] < olympia[i].Length) { Console.WriteLine(olympia[i][dayWinners[i]]); } else { Console.WriteLine($"第{i+1}天输入的索引不合法,请输入0到{olympia[i].Length-1}之间的数字"); } }
原写法的问题
C#是强类型语言,单独定义的daywinner1、daywinner2是完全独立的变量,没法通过动态拼接变量名的方式调用它们,这种离散定义的方式本身就不适合循环场景,用数组或列表统一存储才是符合语言规范的合理方案。
内容的提问来源于stack exchange,提问作者Trong Tin Nguyen
相关产品推荐
相关产品推荐

