Totales Anfängerproblem "IF <>"

CrazyFreddy

Mitglied
Hallo allerseits!

Ich habe mir vor kurzem die Express Version von VB2005 heruntergeladen, und wollte als absoluter Programmieranfänger (dank dem Ebook unter der "Tutorial" Sektion) mein erstes Eingabe Programm basteln.

Es sollte ein einfacher Rechner sein, zuerst die Variablen einlesen und dann durch das gewünschte Rechnungsverfahren ausgeben.
Das funktioniert auch wunderbar, bis auf die Zeile

If strOp <> "*" Or "+" Or "-" Or "/" Then Console.WriteLine("Das ist nicht erlaubt!")

Was ich mit dem Code sagen will ist das der User NUR die 4 Grundrechnungsarten eingeben kann und kein "p" oder "q"....
Falls dass der Fall ist sollte das Programm einen Text ausgeben.
Leider kann der Compiler damit nichts anfangen obwohl in der Entwicklerumgebung auch kein Fehler angegeben wird.

Es ist mit Sicherheit nur ein kleines Problem, komme aber einfach nicht drauf warum die Anweisung nicht funktionieren will, hier der vollständige Code:
(Bitte greift euch nicht am Kopf weil Sachen umständlich und hässlich geschrieben sind)

------------------------------------------------------------Start---------------------------------------------------------------

Module Module1

Sub Main()
Start:
Dim intVar1 As Integer
Dim intVar2 As Integer
Dim strOp As String
Console.WriteLine("Bitte Zahl Nummer eins eingeben: ")
intvar1 = Console.ReadLine()

Console.WriteLine("Bitte Zahl Nummer zwei eingeben: ")
intvar2 = Console.ReadLine()

Console.WriteLine("Was wollen Sie mit den Ziffern tun?")
Console.WriteLine("Geben Sie hier '*' für Mal, '+' für Plus '-' für Minus und '/' für Dividieren an")

strOp = Console.ReadLine()
If strOp <> "*" Or "+" Or "-" Or "/" Then Console.WriteLine("Das ist nicht erlaubt!") Else GoTo weiter
Console.WriteLine(ControlChars.NewLine)
GoTo Start

Weiter:

If strOp = "*" Then Console.WriteLine("Das Ergebnis ist: {0}", intVar1 * intVar2)
If strOp = "+" Then Console.WriteLine("Das Ergebnis ist: {0}", intVar1 + intVar2)
If strOp = "-" Then Console.WriteLine("Das Ergebnis ist: {0}", intVar1 - intVar2)
If strOp = "/" Then Console.WriteLine("Das Ergebnis ist: {0}", intVar1 / intVar2)
Console.WriteLine(ControlChars.NewLine)

GoTo Start

End Sub

End Module
------------------------------------------------------------Ende---------------------------------------------------------------

Helft mir bitte auf die Sprünge!

Falls Ihr noch Anregungen loswerden wollt, bitte ich euch diese loszuwerden, schließlich will ich etwas dabei lernen!

Danke!

Fred

Edit:
Fehler gefunden habe vergessen die Variablen einzugeben:
Richtig ist
If strOp <> "*" And strOp <> "+" And strOp <> "-" And strOp <> "/" Then
 
Zuletzt bearbeitet:

Christian Kusmanow

Erfahrenes Mitglied
Wenn es sich um einfache Ausaben handelt, kannst getrost string.Format verwenden. ;)

Das ist 100 mal überschaubarer als alles händisch zu verketten.

Aber vorsicht, string.Format ist bei schnell Wiederkeherenden Routinen nicht angebracht,
da es dann ne Menge Speicher verbraucht.

[thread=198878]Überschreiben von ToString - Thread[/thread]

MfG,
cosmo