Archiv verlassen und diese Seite im Standarddesign anzeigen : 10x IF THEN, oder was eleganteres möglich??
Hallo Leute,
habe mal ne Frage. Ich lese mit dem ADC einen Spannungswert und will nun bei verschiedenen Werten 10 verschiedene "Dinge" ablaufen lassen.
Muß ich nun 10x z.B.
IF Wert = 5 Then Gosub xyz
IF Wert = 10 THEN GOSUB klm usw.
machen, oder gibt es auch eine elegantere, vielleicht sogar sparsamere Variante?
Sowas steht leider in keinem Buch, oder kennt jemand eines über strukturierte Programmiereung in BASIC??
Danke, Andreas
Es gibt in Basic wenn ich mich nicht irre so etwas:
myVar = 3;
select case myVar
case 1
print "one"
case 2
print "two"
case 3
print "three"
case else
print "not 1, 2 or 3"
end select
Das ist sowas wie switch in Java oder C...
Ich find' den "Select case" bei mehrfach Abfragen (der gleichen Variablen) am saubersten und gut zu lesen
Es gibt aber auch die "ELSEIF" Methode, die "IF-Bäume" etwas handsamer macht, besonders wenn unterschiedliche Bedingungen gefragt werden müssen:
IF bedingung1 THEN
----
ELSEIF bedingung2 THEN
----
ELSEIF bedingung3 THEN
----
END IF
darwin.nuernberg
29.11.2005, 17:17
Ohne weiteren Kommentar:
' Analog Input Test
'
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 19200
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word , Channel As Byte
Channel = 1
Print "Startup";
Do
W = Getadc(channel)
Select Case W
Case 0 : Print "Null"
Case Is < 10 : Print "weniger als 10"
Case 100 To 200 : Print "irgendwo zwischen 100 und 200"
Case Is < 500 : Print "Sehr viel"
Case Else : Print "irgendwas anderes"
End Select
Waitms 100
Loop
Stop Adc
End
Rage_Empire
29.11.2005, 19:23
mir würde auch noch der "on...goto"-Befehl einfallen. kommt aber auf die Anwendung, bzw. das gewünschte Ergebnis an.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.