如何在控制台应用中统计10个输入数的正、负、零出现次数?
解决方案:VB.NET控制台统计正数、负数、零的数量
没问题,我帮你搞定这个需求,先给你完整的可运行代码,再拆解关键逻辑:
Module Program Sub Main() ' 定义计数器:循环次数用Integer更合适,统计数量也用Integer Dim counter As Integer Dim plusCount, minusCount, zeroCount As Integer Dim inputNum As Decimal ' 存储用户输入的数字 For counter = 1 To 10 Console.Write($"请输入第 {counter} 个数字:") ' 验证输入是否为有效数字,避免程序崩溃 Do While Not Decimal.TryParse(Console.ReadLine(), inputNum) Console.Write("输入无效,请输入一个数字:") Loop ' 判断数字类型并更新对应计数 If inputNum > 0 Then plusCount += 1 ElseIf inputNum < 0 Then minusCount += 1 Else zeroCount += 1 End If Next ' 输出统计结果 Console.WriteLine(vbCrLf & "统计结果:") Console.WriteLine($"正数的数量:{plusCount}") Console.WriteLine($"负数的数量:{minusCount}") Console.WriteLine($"零的数量:{zeroCount}") ' 让控制台停留,方便查看结果 Console.WriteLine(vbCrLf & "按任意键退出...") Console.ReadKey() End Sub End Module
关键逻辑拆解
- 变量类型优化:你原代码里用
Decimal定义循环计数器counter其实没必要,循环计数用Integer更贴合场景;统计数量的变量也用Integer就足够,毕竟是整数计数。 - 输入验证:加入
Decimal.TryParse来确保用户输入的是有效数字,避免因为输入非数字导致程序报错崩溃。 - 判断逻辑:每次输入完成后,通过简单的条件分支判断数字是正、负还是零,分别累加对应计数器。
- 结果输出:循环结束后统一打印三个统计值,最后加了
Console.ReadKey()让控制台窗口不会直接关闭,方便查看结果。
你原代码的问题
你的代码只写了变量定义和循环的开头,缺少输入获取、数字判断逻辑以及结果输出部分,所以无法正常运行。上面的代码补全了所有必要环节,并且做了输入容错处理,更健壮。
内容的提问来源于stack exchange,提问作者user9585869
相关产品推荐
相关产品推荐

