1

VBで2D配列を作成していますが、値が入力されている2D配列内の位置を選択する方法を理解するために支援が必要です。配列要素をループして値を追加する方法は知っていますが、位置を選択して値を入力するだけの場合は、これがより迅速な方法になります。

ありがとう

Console.WriteLine( "値を入力する位置:")userInput = Console.ReadLine

    Console.WriteLine(" Would you like to enter another 1 ?? (Y or N)")
    If (reply = "Y") Or (reply = "y") Then
        reply = Console.ReadLine()
        Console.WriteLine("What position would like to enter a value:")
        userInput = Console.ReadLine

    End If

    For row = 0 To cRow
        For column = 0 To cColumn
            If grid(row, column) = 0 Then
                Console.Write(Chr(32))
            Else
                Console.Write(Chr(42))
            End If
        Next
        Console.WriteLine()
    Next
4

2 に答える 2

0

ポジションを取得したい場合は、明らかにユーザーにポジションを提供するように依頼する必要があります。また、これはユーザー入力であるため、ユーザーが入力した内容が役立つものかどうかを確認する必要があります(ルール1:ユーザーを信頼しないでください!)

Sub Main()

    Dim matrix(8, 8) As String

    Do
        ' get user input
        Console.Write("Enter coordinates in the form: 'x,y'")
        Dim input As String = Console.ReadLine()
        ' empty string=quit
        If input.Length = 0 Then Exit Do
        ' split on ',' character
        Dim spl = input.Split(","c)
        ' there must be exactly two values
        If spl.Count <> 2 Then Continue Do
        ' check if user entered two NUMBERS
        Dim x, y As Integer
        If Not Integer.TryParse(spl(0), x) Or Not Integer.TryParse(spl(1), y) Then Continue Do
        ' Validate x
        If x < 0 OrElse x > UBound(matrix, 1) Then
            Console.WriteLine("x must be 0..{0}", UBound(matrix, 1))
            Continue Do
        End If
        ' Validate y
        If y < 0 OrElse y > UBound(matrix, 2) Then
            Console.WriteLine("y must be 0..{0}", UBound(matrix, 2))
            Continue Do
        End If
        ' set value
        matrix(x, y) = "x"
        Console.WriteLine("Value saved")
    Loop

    ' output matrix
    For y = 0 To UBound(matrix, 2)
        For x = 0 To UBound(matrix, 1)
            If String.IsNullOrEmpty(matrix(x, y)) Then
                Console.Write(".")
            Else
                Console.Write(matrix(x, y))
            End If
        Next
        Console.WriteLine()
    Next
于 2012-11-24T22:54:10.147 に答える
0

配列に値を追加するには、3 つの情報、2 つの座標 (行、列)、および値が必要です。あなたがこの情報を持っていると仮定すると、あなたはただ行うでしょう。

    Dim grid(2, 2) As String
    Dim row As Integer = 1
    Dim column As Integer = 0
    Dim value As String = "something"

    grid(row, column) = value
于 2012-11-24T15:08:31.663 に答える