Blöde frage if - else usw.

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Sereyanne

Betreff: Blöde frage if - else usw.

BeitragDo, März 27, 2008 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Sorge ich hab schon das forum durchsucht!!
trotzdem muss ich so ne dämliche frage stellen, die ich selbst total bescheuert finde aber ich komm nicht weiter!!!
wann brauch ich elseif???
wann brauch ich endif???
was ist der unterschied else - elseif, wie benutz ich das???
Code: [AUSKLAPPEN]
Locate 2,410
antwort$ = Input ("ja / nein ")
Text 2,440, antwort$
If antwort$="ja" Then Nehmen()
ElseIf antwort$="nein" Then  Goto sprung2
Else Goto sprung3
EndIf

also ich möchte eine antwort eingeben können, es soll abgefragt werden ob ich "ja", "nein" oder irgendwas anderes eingegeben hab.
bei meinem basic früher ging das so:
Code: [AUSKLAPPEN]
if antwort$="ja" then soundso
if antwort$="nein" then soundso else soundso

aber hier geht das nicht, da kommt "else without if"
was mach ich falsch?

Artemis

BeitragDo, März 27, 2008 14:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du Else-Zweige benutzen möchtest darf die Anweisung nicht nach dem If/ElseIf stehen.

Also folgendes geht nicht:
Code: [AUSKLAPPEN]
If a = 1 Then Print "a=1"
Else Print "a=was anderes"
EndIf


Sondern es muss so sein:
Code: [AUSKLAPPEN]
If a = 1 Then
    Print "a=1"
Else
    Print "a=was anderes"
EndIf


Der Vorteil eines ElseIf-Zweiges ist der, dass das ganze nur überprüft und abgearbeitet wird, wenn der vorige If-Zweig nicht zutraf.
Code: [AUSKLAPPEN]
If 1 = 1 Then
   Print "Tata"
ElseIf 1 = 1 Then
   Print "Tutu"
Else
   Print "Toto"
EndIf

Das gibt nur "Tata" aus, weil der Rest des If/ElseIf/Else-Konstruktes ignoriert wird.


BTW: Du solltest von der Benutzung von GOTO Abstand nehmen und besser Funktionen benutzen.

Sereyanne

BeitragFr, März 28, 2008 9:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Also folgendes geht nicht:
Code: [AUSKLAPPEN]
If a = 1 Then Print "a=1"
Else Print "a=was anderes"
EndIf

Sondern es muss so sein:
Code: [AUSKLAPPEN]
If a = 1 Then
    Print "a=1"
Else
    Print "a=was anderes"
EndIf

ist das jetzt dein ernst? weil eigentlich ist das doch das gleiche, nur in der nächsten zeile...
man auf sowas blödes wär ich nie gekommen - danke!

Zitat:
BTW: Du solltest von der Benutzung von GOTO Abstand nehmen und besser Funktionen benutzen.

danke für den tipp. ich hab schon gelesen dass goto "böse" ist. keine sorge, fungiert nur als platzhalter bis der code (in dem fall die if-geschichte) funktioniert. ich will keine riesigen codes schreiben wo ich dann fehler suchen muss. mach ich erst wenn der eigentliche mechanismus funzt.
danke für die hilfe!

FireballFlame

Betreff: Re: Blöde frage if - else usw.

BeitragFr, März 28, 2008 14:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Sereyanne hat Folgendes geschrieben:
bei meinem basic früher ging das so:
Code: [AUSKLAPPEN]
if antwort$="ja" then soundso
if antwort$="nein" then soundso else soundso


Das geht in Blitz genauso ^^

ElseIf braucht man meiner Meinung nach übrigens überhaupt nicht.
Ich finde
Code: [AUSKLAPPEN]

If 1 = 1 Then
   Print "Tata"
Else
   If 1 = 1 Then
      Print "Tutu"
   Else
      Print "Toto"
   End If
End If

deutlich übersichtlicher, aber das ist wohl Geschmackssacke...
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

skey-z

BeitragFr, März 28, 2008 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Also das mit der doppelten if verzweigung ist, besonders für Anfänger noch deutlich komplizierter und unübersichtlicher

Falls eine Variable mehr als 3 Zustände annehmen kann, sollte man, meiner Meinung nach, eher zu Select/Case greifen, da es dann übersichtlicher wird
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

FireballFlame

BeitragSa, März 29, 2008 1:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt. Aber nur dann, wenn in der "äußeren" und in der "inneren" Abfrage die gleiche Variable geprüft wird.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group