VB.NET 实现返回数组最大值功能运行结果错误如何解决
问题原因
你的核心错误是条件判断逻辑中混淆了**循环索引变量i**和数组对应位置的元素值:
- 你写的判断语句
If i > maxage Then是拿循环的下标和当前最大值做对比,完全没有用到数组中存储的年龄值 - 循环过程:
- 初始
maxage为0,i从0开始递增,i=1时1>0成立,maxage被赋值为ageList(1)即13 - 后续i最大仅到5(数组共6个元素,索引范围0~5),5永远小于13,判断条件再也不会触发,
maxage不会更新,最终固定输出13
- 初始
另外额外注意:maxage初始值不要固定为0,如果数组所有元素都是负数,最终结果会出错,更严谨的写法是初始化为数组第一个元素。
修正后代码
Dim ageList() As Integer = {12, 13, 18, 11, 5, 3} Dim maxage As Integer = ageList(0) Dim i As Integer For i = 0 To UBound(ageList) If ageList(i) > maxage Then maxage = ageList(i) End If Next i Console.WriteLine(maxage) Console.ReadLine()
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

