输入数与do循环的和直到



关于作业的一个小问题。我必须使这段代码的版本将"做直到循环"。第一部分关于"请输入正数";可工作,但不能计算和的第二部分

Sub Main()

Dim sumOdd, oddinput As Integer
Dim odd = 1
Console.Write("Please Enter a Positive Odd Number!: ")
oddinput = CInt(Console.ReadLine())
Do Until oddinput < 0 Or oddinput Mod 2 = 0
Console.Write("Please Enter a Positive Odd Number!: ")
oddinput = CInt(Console.ReadLine())
Loop

'The do until loop below is giving me the issue
Do Until odd <= oddinput
sumOdd += odd
odd += 2
Loop

Console.WriteLine("The Sum of all the odd numbers up to {0} is {1}!", oddinput, sumOdd)
Console.ReadLine() 
End Sub

终端模块

第一部分实际上并没有按照您的要求执行。

oddinput < 0 

将接受小于0的任何数字

oddinput Mod 2 = 0

将接受任何偶数,而不是奇数。

但你想要的是让用户输入一个数字,直到它是正数和奇数:

Do Until oddinput > 0 And oddinput Mod 2 = 1
Console.Write("Please Enter a Positive Odd Number!: ")
oddinput = CInt(Console.ReadLine())
Loop

对于第二部分,您希望它添加奇数,直到奇数大于oddinput,然后停止。

Do Until odd > oddinput
sumOdd += odd
odd += 2
Loop

在你的上一个赋值中,你必须使用While循环,所以你可以说:While奇数小于或等于最终数。在这里,你要做的基本上是相反的:直到奇数大于最终数。也不要使用>=,因为当奇数与最终数字相同时循环将停止,但您仍然希望添加这个数字。

尝试:

Do Until oddinput < 0 Or oddinput Mod 2 = 1

你要求一个奇数,但条件只接受一个偶数。

:

Do Until odd > oddinput

先前,对于odd = 1和条件odd <= oddinput,对于任何大于1oddinput,循环将刚刚退出。

您应该在开始时初始化sumOdd。

sumOdd=0

奇数应该从2开始而不是1

Dim odd = 2

也替换这一行:

Do Until odd > oddinput

可以。之后,您需要验证验证,因为它正在验证例如-2。

最新更新