在制作明星绘画节目的同时真正挣扎于子程序

时间:2014-10-15 18:15:06

标签: vb.net visual-studio-2010 visual-studio visual-studio-2008

我试图创建一个绘制一系列空格和星星的子程序,然后输出结果。用户输入星星的数量和他们想要的空间量,然后输出在屏幕上绘制的星星和空格。例如,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

结束模块

2 个答案:

答案 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

这不应该作为复制和粘贴解决方案。这是一个例子,我在你的代码中看到了什么问题=)