C#求最大值的第二个for循环逻辑解析求助
解释找最大值的循环逻辑
先把你的代码规整一下,方便查看:
int[] inputNum = new int[4]; for(int i = 0; i < 4; i++) { Console.Write("Enter number: "); inputNum[i] = int.Parse(Console.ReadLine()); } int inputMax = 0; for(int i2 = 0; i2 < inputNum.Length; i2++) { if(inputNum[i2] > inputMax) { inputMax = inputNum[i2]; } } Console.WriteLine($"Highest value number: {inputMax}");
第二个循环的运行逻辑
咱们一步一步拆解:
- 初始化当前最大值:
int inputMax = 0这行先把0当作默认的“当前最大值”。 - 遍历数组所有元素:
for循环从数组的第一个元素(索引0)开始,依次检查到最后一个元素(索引3),每一轮循环都会取出数组里的一个数。 - 比较并更新最大值:
- 第一轮:拿数组第一个数和
inputMax(0)对比,如果这个数比0大,就把inputMax替换成这个数;如果比0小,inputMax保持0不变。 - 第二轮:拿数组第二个数和当前的
inputMax对比,要是这个数更大,就更新inputMax,否则保持原值。 - 第三、四轮重复同样的操作,把数组里的第三、第四个数分别和当前最大值对比,更大就替换。
- 第一轮:拿数组第一个数和
- 得到最终结果:等所有元素都对比完,
inputMax里存的就是整个数组里的最大值了。
小补充
这个代码有个小问题:如果输入的4个数全是负数(比如-1、-2、-3、-4),最后输出的最大值会是0,而不是实际最大的-1。要是想修复这个bug,可以把inputMax的初始值改成数组的第一个元素,也就是int inputMax = inputNum[0],这样就不会出错了。
内容的提问来源于stack exchange,提问作者Ted
相关产品推荐
相关产品推荐

