Bei unten stehendem Code geschehen (für mich) seltsame Dinge. Was ich mit dem Programm erreichen will, sollte ja ersichtlich sein. Wenn ich nun "g" eingebe, um die Größe des Winkels im Gradmaß einzugeben funktioniert alles wunderbar. Sobald ich nun aber "b" oder einen anderen Buchstaben (sollte die else-Anweisung abfangen) eingeben will, muss ich immer diesen Buchstaben eintippen, enter drücken.. nichts passiert. Nochmals den Buchstaben eingeben, Enter drücken -> alles geschieht, wie es geschehen sollte.
Nun also die Frage: Warum braucht er immer zuerst eine Leerzeile bzw. Non-sense-Zeile, bevor er alle Buchstaben, außer g, "erkennt"?
Ich hoffe ich habe mich verständlich ausgedrückt und es kann mir dabei jemand weiterhelfen.
Imports System.Math
Module Sinuswert
Sub Main()
Const pi As Double = Math.PI
Dim y As Single
Dim x As Single
begin:
Console.WriteLine("Bitte wählen sie aus, ob sie die Größe des Winkels in Grad- oder Bogenmaß angeben wollen")
Console.WriteLine("b = Bogenmaß / g = Gradmaß")
If Console.ReadLine() = "g" Then
Console.WriteLine("gewählt: Gradmaß")
Console.WriteLine("Bitte die Gradzahl des Winkels x im Gradmaß eingeben")
y = Console.ReadLine()
x = 2 * pi * (y / 360)
x = Sin(x)
ElseIf Console.ReadLine() = "b" Then
Console.WriteLine("gewählt: Bogenmaß")
Console.WriteLine("Bitte die Graduzahl des Winkels x im Bogenmaß eingeben")
x = Console.ReadLine()
x = Sin(x)
Else
Console.WriteLine("ungültige Auswahl, bitte erneut auswählen")
GoTo begin
End If
Console.WriteLine("sin(x) beträgt:")
Console.Write(x)
Console.ReadKey()
End Sub
End Module