Hallo,
ich habe mir einen Taschenrechner (mit For-Schleife) erstellt.
Er kann alles, außer Punkt vor Strich. Die Funktion ist etwas schwieriger, da ich kein kein DataTable.Compute benutzen darf, sonst wäre es ja zu einfach.
Es muss durch den String selber erfolgen, also etwas komplizierter.
Hier der Code (kann leider nicht den ganzen Code eingeben, daher hier der = Code, der dafür ja auch am wichtigsten ist; ich füge den Rest einzeln hinzu!):
Dim input As String = tb.Text
Dim numbers() As String = input.Split({"+", "-", "*", "/"}, StringSplitOptions.RemoveEmptyEntries)
Dim operators() As String = Regex.Matches(input, "[-+*/]").OfType(Of Match).Select(Function(m) m.Value).ToArray()
For Each op As String In operators
If op = "*" Then
Console.WriteLine("Multiplication operator found!")
ElseIf op = "/" Then
Console.WriteLine("Division operator found!")
ElseIf op = "+" Then
Console.WriteLine("Addition operator found!")
ElseIf op = "-" Then
Console.WriteLine("Subtraction operator found!")
End If
Next
If numbers.Length < 2 OrElse operators.Length < 1 Then
Return ' Exit the method if we can't perform the calculation
End If
Dim result As Double = Double.Parse(numbers(0))
For i As Integer = 0 To operators.Length - 1
Dim op As String = operators(i)
Dim number As Double = Double.Parse(numbers(i + 1))
Select Case op
Case "+"
result += number
(das Gleiche mit -*/)
End Select
Next
tb.Text = result.ToString()
Dim containsInvalidCharacters As Boolean = False
For i As Integer = tb.Text.Length - 1 To 0 Step -1
If Not IsNumeric(tb.Text.Substring(i, 1)) And Not "+-*/".Contains(tb.Text.Substring(i, 1)) Then
containsInvalidCharacters = True
Exit For
End If
Next
' Beibehaltene For-Schleife
For index As Integer = 1 To 2
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 12
For index As Integer = 3 To 1 Step -1
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 321
For index As Integer = 4 To 1 Step -1
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 4321
For index As Integer = 5 To 1 Step -1
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 54321
For index As Integer = 6 To 1 Step -1
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 654321
For index As Integer = 7 To 1 Step -1
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 7654321
For index As Integer = 8 To 1 Step -1
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 87654321
For index As Integer = 9 To 1 Step -1
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 987654321
For index As Integer = 0 To 0
Debug.Write(index.ToString & "")
Next
Debug.WriteLine("") 'Output: 0
End Sub
Danke schon einmal!