如何用While循环编写VB代码计算前100个偶数与奇数的和
问题分析与修正方案
原代码存在的核心问题
- 变量未初始化:
sum和count声明后没有赋初始值,运行时会出现未定义行为 - 循环条件逻辑错误:
count Mod 2 <= 200完全不符合需求,偶数对2取余结果恒为0,会导致死循环 - 存在语法错误:
count =行内容为空,无法通过编译 - 数值范围逻辑错误:前100个正偶数的范围是2~200,而非≤100的数
范围与实现方案确认
- 无特殊说明的前提下,前100个正偶数为
2,4,6...200,求和结果为10100;前100个正奇数为1,3,5...199,求和结果为10000 - 可以使用两个独立的While循环分别计算两类和,逻辑更清晰,适合初学者理解
可运行完整代码
Sub Main() ' 计算前100个偶数的和 Dim evenSum As Integer = 0 Dim evenCount As Integer = 1 ' 循环计数器,记录已经累加的偶数数量 Dim currentEven As Integer = 2 ' 第一个偶数 While evenCount <= 100 evenSum += currentEven currentEven += 2 ' 步进2获取下一个偶数 evenCount += 1 End While Console.WriteLine("前100个偶数的和是:{0}", evenSum) ' 计算前100个奇数的和 Dim oddSum As Integer = 0 Dim oddCount As Integer = 1 Dim currentOdd As Integer = 1 ' 第一个奇数 While oddCount <= 100 oddSum += currentOdd currentOdd += 2 ' 步进2获取下一个奇数 oddCount += 1 End While Console.WriteLine("前100个奇数的和是:{0}", oddSum) Console.ReadLine() End Sub
逻辑说明
- 没有用取余判断奇偶的方式,直接每次步进2,性能更高,逻辑更直观
- 用计数器控制循环刚好执行100次,避免范围判断出错的问题
- 两类求和的逻辑完全一致,仅初始值不同,符合你之前的判断
内容的提问来源于stack exchange,提问作者user17011328
相关产品推荐
相关产品推荐

