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

VB.NET中Max()与Min()方法失效求助:返回值始终为0

问题原因分析

你的代码里的核心问题出在For Each循环的使用方式上。

在VB.NET中,当你用For Each numerito In numeros遍历数组时,numerito其实是数组中每个元素的副本,而不是对原数组元素的引用。这意味着你在循环里给numerito赋值,只是修改了这个临时副本的值,根本没有改变原数组numeros里的元素。原数组初始化后所有元素默认都是0,所以最后调用Max()和Min()自然返回0啦。

修正方案

你可以改用普通的For循环,通过索引直接操作数组元素,这样就能真正把输入的值存入数组中:

Dim numeros(9) As Integer
For i As Integer = 0 To numeros.Length - 1
    numeros(i) = Val(InputBox("Ingrese un numero"))
Next
txtResultadoMayor.Text = numeros.Max().ToString()
txtResultadoMenor.Text = numeros.Min().ToString()

另外补充一点:Val()函数在处理输入时如果遇到非数字内容会返回0,你可以考虑用Integer.TryParse来做更安全的输入验证,避免无效输入导致的错误。比如:

Dim numeros(9) As Integer
For i As Integer = 0 To numeros.Length - 1
    Dim input As String = InputBox("Ingrese un numero")
    If Not Integer.TryParse(input, numeros(i)) Then
        ' 这里可以添加输入错误的提示,比如重新输入
        i -= 1 ' 让循环重新处理当前索引
        MessageBox.Show("Por favor ingrese un número válido")
    End If
Next
txtResultadoMayor.Text = numeros.Max().ToString()
txtResultadoMenor.Text = numeros.Min().ToString()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:02:05