End If? Wo ist der Unterschied?
Übersicht

MansoorBetreff: End If? Wo ist der Unterschied? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute, ![]() Ich habe jetzt eine Frage. Was ist der Unterschied zwischen den beiden Cods? Ich bin auf Seite 39 Punkt 3.1.3 End If von dem Buch jetzt lerne ich Spiele Prorgammieren mit Blitz Basic. Code: [AUSKLAPPEN] Graphics 640,480
Print "Willkommen beim Eisautomaten" Print "Bitte wählen Sie ihr Eis aus:" Print "1 - Erdbeere" Print "2 - Vanille" Eis = Input ("Drücken Sie eine Taste um das Eis zu bekommen:") If Eis = 1 Then Print "Hier ist Ihr Erdbeere Eis!!!" Erdbeere = Erdbeere - 1 If Eis = 2 Then Print "Hier ist Ihr Vanille Eis" Vanille = Vanille - 1 und wenn man so macht... Code: [AUSKLAPPEN] Graphics 640,480
Print "Willkommen beim Eisautomaten" Print "Bitte wählen Sie ihr Eis aus:" Print "1 - Erdbeere" Print "2 - Vanille" Eis = Input ("Drücken Sie eine Taste um das Eis zu bekommen:") If Eis = 1 Then Print "Hier ist Ihr Erdbeere Eis!!!" Erdbeere = Erdbeere - 1 EndIf If Eis = 2 Then Print "Hier ist Ihr Vanille Eis" Vanille = Vanille - 1 EndIf Beide Cods Funktionieren und es kommt das gleiche Ergebnis raus? Und wozu ist jetzt das End If ? Danke ![]() |
||
IonPainter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn am mehrere zeilen in nen if block qwuetschen will dann muss der block ja auch abgeschlossen werden. mit end if. wenn du anweisung direkt hinter then packst hängt blitz ein unsichtbares end if dran ![]() |
||
stepuh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das funktioniert aber nur, wenn nur eine anwendung in der bedingung ausgeführt werden soll!
wenns mehrere sein sollen bracht man End If EDIT: Verdammt IonPainter is mir zuvorgekommen ![]() |
||
CodeMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm, also ein If ohne EndIf ist einzeilig, nicht einbefehlig ![]() Sprich alles was in der If-Zeile steht wird nur dann ausgeführt, wenn die Bedingung erfüllt ist. |
||
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
Mansoor |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei 1 soll er A benützen und das Funktioniert. Und bei 2 soll er B benützen das funktioniert auch. Und bei 3 soll er C benützen und nicht C und B zusammen, ist das Normal?
Code: [AUSKLAPPEN] Graphics 640,480 Print "Willkommen beim Eisautomaten" Print "Bitte wählen Sie ihr Eis aus:" Print "1 - Erdbeere" Print "2 - Vanille" Eis = Input ("Drücken Sie eine Taste um das Eis zu bekommen:") If Eis = 1 Then ;A Print "Hier ist ihr Erdbeer Eis" Else ;B Print "Hier ist ihr Vanille Eis" End If ;C If Eis > 2 Then Print "Falsche Eingabe!!!" |
||
morszeckGast |
![]() Antworten mit Zitat |
|
---|---|---|
Der Else-Zweig ist immer erfüllt wenn etwas anderes als 1 eingegeben wurde, also auch wenn man bspw. eine 3 eingibt.
Mach es besser so: Code: [AUSKLAPPEN] Graphics 640,480 Print "Willkommen beim Eisautomaten" Print "Bitte wählen Sie ihr Eis aus:" Print "1 - Erdbeere" Print "2 - Vanille" Eis = Input ("Drücken Sie eine Taste um das Eis zu bekommen:") If Eis = 1 Then ;A Print "Hier ist ihr Erdbeer Eis" ElseIf Eis = 2 Then ;B Print "Hier ist ihr Vanille Eis" End If ;C If Eis > 2 Then Print "Falsche Eingabe!!!" CU |
||
![]() |
Xenon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder noch besser alles in nur einem gemeinsamen If, nämlich so:
Code: [AUSKLAPPEN] Graphics 640,480
Print "Willkommen beim Eisautomaten" Print "Bitte wählen Sie ihr Eis aus:" Print "1 - Erdbeere" Print "2 - Vanille" Eis = Input ("Drücken Sie eine Taste um das Eis zu bekommen:") If Eis = 1 Then ;A Print "Hier ist ihr Erdbeer Eis" ElseIf Eis = 2 Then ;B Print "Hier ist ihr Vanille Eis" Else ;C Print "Falsche Eingabe!!!" End If |
||
morszeckGast |
![]() Antworten mit Zitat |
|
---|---|---|
OK, das ist natürlich noch besser... ![]() |
||
CodeMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du schon solche Konstruktionen machst, würde ich dir zu Select Case raten:
Code: [AUSKLAPPEN] Graphics 640,480
Ist viel übersichtlicher!
Print "Willkommen beim Eisautomaten" Print "Bitte wählen Sie ihr Eis aus:" Print "1 - Erdbeere" Print "2 - Vanille" Eis = Input ("Drücken Sie eine Taste um das Eis zu bekommen:") select Eis case 1 print "Hier ist Ihr Erdbeereis" case 2 print "Hier ist Ihr Vanilleeis" default print "Falsche Eingabe!!!" end select |
||
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
![]() |
Xenon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das wollte ich auch zuerst schreiben, aber wenn er erst beim Kapitel If ist, wird er noch kein Select können! | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um mal die Frage zu beantworten: Der erste Code hat einen Bug, wenn man so will. Egal was man auswählt, es wird immer von Erdbeere und Vanille eins abgezogen. Der zweite Code zeigt dann die richtige Lösung ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
René Meyer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Im Buch wird doch der Unterschied erklärt:
Zitat: Hinter Then sind mehrere Befehle möglich. Blitz Basic kann aber nicht von allein wissen, dass bei einer Schreibweise wie ...
If Sorte = 1 Then Print "Sie haben Vanille gewählt." Vanille = Vanille - 1 If Sorte = 2 Then Print "Sie haben Schoko gewählt." Schoko = Schoko - 1 ... die zweite Zeile zum ersten If gehören soll. Es führt sie als eigenständigen Befehl auf jeden Fall aus. Deswegen teilen Sie mit dem Befehl EndIf das Ende der If-Bedingung mit. Gibt es EndIf, dann behandelt Blitz Basic alle Befehle zwischen Then und EndIf als Teil der If-Bedingung: If Sorte = 1 Then Print "Sie haben Vanille gewählt." Vanille = Vanille - 1 EndIf |
||
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group