我试图创建一个绘制一系列空格和星星的子程序,然后输出结果。用户输入星星的数量和他们想要的空间量,然后输出在屏幕上绘制的星星和空格。例如,DrawStars(4,5)将输出---- *****。
到目前为止,这是我的代码:
Module Module1
Sub Main()
Dim Spaces As Integer = 0
Dim Stars As Integer = 0
Dim TotalChars As Integer = 0
Console.WriteLine("Enter the number of spaces you want to enter")
Spaces = Console.ReadLine
Console.WriteLine("Enter the number of stars you want to enter")
Stars = Console.ReadLine
TotalChars = Spaces + Stars
DrawStars(Spaces, Stars, TotalChars)
Console.WriteLine("")
Console.ReadLine()
End Sub
Sub DrawStars(ByVal Spaces As Integer, ByVal Stars As Integer, ByVal TotalChars As Integer)
Dim Output As String
Do Until TotalChars = Stars + Spaces
If Spaces > 0 The
Output = Console.ReadLine
Else
Console.WriteLine("*")
End If
Loop
End Sub
结束模块
答案 0 :(得分:1)
最简单的情况是使用this constructor overload创建2个字符串:
Sub DrawStars(ByVal Spaces As Integer, ByVal Stars As Integer, ByVal TotalChars As Integer)
Console.Write(new String(" "C, Spaces))
Console.Write(new String("*"C, Stars))
End Sub
上述代码未受到无效输入参数的保护。
答案 1 :(得分:0)
你必须改变自己的状况。根据{{1}},TotalChars
已经Stars + Spaces
。
Main
你也没有递增Do Until TotalChars = Stars + Spaces '<-- Already True!
If Spaces > 0 The
Output = Console.ReadLine
Else
Console.WriteLine("*")
End If
Loop
所以让我们只换到2 TotalChars
个循环,因为 @dotnetom 已经显示了一个简单的方法来创建一个包含空格和星号的字符串。
For
这不应该作为复制和粘贴解决方案。这是一个例子,我在你的代码中看到了什么问题=)