关于作业的一个小问题。我必须使这段代码的版本将"做直到循环"。第一部分关于"请输入正数";可工作,但不能计算和的第二部分
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
,对于任何大于1
的oddinput
,循环将刚刚退出。
您应该在开始时初始化sumOdd。
sumOdd=0
奇数应该从2开始而不是1
Dim odd = 2
也替换这一行:
Do Until odd > oddinput
可以。之后,您需要验证验证,因为它正在验证例如-2。