Select-Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Quacksalber

Betreff: Select-Problem

BeitragSa, Nov 06, 2010 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Erstmal muss ich sagen dass ich die Demo von BlitzBasic3D verwende, deshalb kann der Fehler auch daran liegen.
Wenn nicht handelt es sich wahrscheinlich um einen typischen Anfängerfehler.

Bei folgendem Programm kommt die Fehlermeldung:

Expecting ´Case´, ´Default´ or ´End Select´.

Allerdings habe ich überall End Select festgelegt.
Hier der Programmcode:

Print " Währungsumrechner"
Print
Eingabe$ = Input("Welche Währung wollen Sie umrechnen? ")


If Eingabe$ = "euro"
Eingabe1$ = Input("In welche Währung wollen sie umrechnen? ")
Print

Select Eingabe1$

Case "pfund", "uk-pfund", "englische pfund", "pound"
Euro1# = Input("Betrag Euro: ")
Print
Pfund2# = Euro1#*0.8672
Print "" +Euro1#+ " Euro entsprechen " +Pfund2+ " UK-Pfund"

Case "dollar", "us-dollar"
Euro1# = Input("Betrag Euro: ")
Print
dollar1# = Euro1#*1,4033
Print "" +Euro1#+ " Euro entsprechen " +dollar1+ " US-Dollar"

Default
Print "Bitte überprüfen Sie ihre Eingabe!"

End Select


ElseIf Eingabe$ = "dollar", "us-dollar", "$"
Eingabe2$ = Input("In welche Währung wollen sie umrechnen? ")
Print

Select Eingabe2$

Case "pfund", "uk-pfund", "englische pfund", "pound"
dollar1# = Input("Betrag US-Dollar: ")
Print
Pfund2# = dollar1#*0.8672
Print "" +dollar1#+ " US-Dollar entsprechen " +Pfund2+ " UK-Pfund"

Case "euro"
dollar1# = Input("Betrag US-Dollar: ")
Print
Euro2# = dollar1#*0.8672
Print "" +dollar1#+ " US-Dollar entsprechen " +Euro2+ " Euro"

Default
Print "Bitte überprüfen Sie ihre Eingabe!"

End Select


ElseIf Eingabe$ = "pfund", "englische pfund" "pound"
Eingabe3$ = Input("In welche Währung wollen sie umrechnen? ")
Print

Select Eingabe3$

Case "dollar", "us-dollar"
Pfund1# = Input("Betrag Pfund: ")
Print
Dollar2# = Pfund1#*0.8672
Print "" +Pfund1#+ " US-Dollar entsprechen " +Dollar2+ " UK-Pfund"

Case "euro"
dollar1# = Input("Betrag Pfund: ")
Print
Euro2# = Pfund1#*0.8672
Print "" +Pfund1#+ " US-Dollar entsprechen " +Euro2+ " Euro"

Default
Print "Bitte überprüfen Sie ihre Eingabe!"

End Select




WaitKey

Johannes´

BeitragSa, Nov 06, 2010 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Du verwechselts den Syntax von Select\Case und If.
Bei dem If Befehl kannst du nicht das schreiben:
Code: [AUSKLAPPEN]
If Eingabe$ = "pfund", "englische pfund" , "pound"

Hier musst du mit "Or" arbeiten:
Code: [AUSKLAPPEN]
If Eingabe$ = "pfund" or "englische pfund" or "pound"


Hier ist noch ein kleiner weiterer Fehler:
Code: [AUSKLAPPEN]
dollar1# = Euro1#*1,4033

Bei Kommazahlen musst du einen Punkt setzten, was du aber meistens gemacht hast, darum denke handelt es sich um einen Flüchtigkeitsfehler.

Wahrscheinlich hast du sie schon gesehen, aber ich verweise noch mal auf die Hilfe:
https://www.blitzforum.de/help/

Achja, wenn du Code postes, solltest du Codeboxen verwenden, der Button "Code" unter den Smileys.

Ana

BeitragSa, Nov 06, 2010 22:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja da sind ein paar Anfängerfehler drin

erstmal benutze für code mal den Button Code unter der Smilies und schreib es zwischen die [] [] paare dann ist es leichter zu lesen.

1.Du darfst das , nicht für zahlen verwenden. Das ist nur im Deutschen so, im Englischen macht man das mit .

2. if bedingungen haben nicht die möglichkeite verschiedene Werte hintereinander zu stellen, das musst du mit a = b or a = c or a = d machen oder sinnvoller mit select und case

3. So ist der Code zumindest syntaktisch richtig:
Code: [AUSKLAPPEN]
Print " Währungsumrechner"
Print
Eingabe$ = Input("Welche Währung wollen Sie umrechnen? ")


If Eingabe$ = "euro"
Eingabe1$ = Input("In welche Währung wollen sie umrechnen? ")
Print

Select Eingabe1$

Case "pfund", "uk-pfund", "englische pfund", "pound"
Euro1# = Input("Betrag Euro: ")
Print
Pfund2# = Euro1#*0.8672
Print "" +Euro1#+ " Euro entsprechen " +Pfund2+ " UK-Pfund"

Case "dollar", "us-dollar"
Euro1# = Input("Betrag Euro: ")
Print
dollar1# = Euro1#*1.4033
Print "" +Euro1#+ " Euro entsprechen " +dollar1+ " US-Dollar"

Default
Print "Bitte überprüfen Sie ihre Eingabe!"

End Select


ElseIf Eingabe$ = "dollar"
Eingabe2$ = Input("In welche Währung wollen sie umrechnen? ")
Print

Select Eingabe2$

Case "pfund", "uk-pfund"
dollar1# = Input("Betrag US-Dollar: ")
Print
Pfund2# = dollar1#*0.8672
Print "" +dollar1#+ " US-Dollar entsprechen " +Pfund2+ " UK-Pfund"

Case "euro"
dollar1# = Input("Betrag US-Dollar: ")
Print
Euro2# = dollar1#*0.8672
Print "" +dollar1#+ " US-Dollar entsprechen " +Euro2+ " Euro"

Default
Print "Bitte überprüfen Sie ihre Eingabe!"

End Select


ElseIf Eingabe$ = "pfund"
Eingabe3$ = Input("In welche Währung wollen sie umrechnen? ")
Print

Select Eingabe3$

Case "dollar", "us-dollar"
Pfund1# = Input("Betrag Pfund: ")
Print
Dollar2# = Pfund1#*0.8672
Print "" +Pfund1#+ " US-Dollar entsprechen " +Dollar2+ " UK-Pfund"

Case "euro"
dollar1# = Input("Betrag Pfund: ")
Print
Euro2# = Pfund1#*0.8672
Print "" +Pfund1#+ " US-Dollar entsprechen " +Euro2+ " Euro"

Default
Print "Bitte überprüfen Sie ihre Eingabe!"

End Select

EndIf


WaitKey ()
Don't only practice your art,
but force your way into its secrets,
for it and knowledge
can raise human to divine

BladeRunner

Moderator

BeitragSo, Nov 07, 2010 9:47
Antworten mit Zitat
Benutzer-Profile anzeigen
und Tu dir und uns einen gefallen und rück deinen code ein, denn
Code: [AUSKLAPPEN]
if dies
tu das
else das
endif


ist eben nicht so gut zu lesen wie
Code: [AUSKLAPPEN]

if dies
    tu das
else
    das
endif


Hier ist der Programmfluss schön strukturiert zu erkennen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Quacksalber

BeitragFr, Nov 12, 2010 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein großes (wenn auch verspätetes) Danke an alle die geantwortet haben.
Ich werde versuchen eure Vorschläge in die Tat umzusetzen.
 

Quacksalber

BeitragMo, Nov 15, 2010 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Als ich jetzt das Programm um ein paar andere Währungen, zB Yen erweitern wollte bin darauf gestoßen dass wenn ich

Code: [AUSKLAPPEN]
Case "yen", "japanische yen", "jpy"  ;jpy ist die intern. bezeichnung für yen


eingebe wieder der oben beschriebene Fehler kommt. Mich würde nun einfach interressieren wieso.
Der Fehler dürfte von "jpy" kommen, denn wenn ich es lösche funktioniert das programm wieder.

LG
Quacksalber

BladeRunner

Moderator

BeitragMo, Nov 15, 2010 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Poste doch mal bitte deinen aktuellen Code komplett.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Quacksalber

BeitragDi, Nov 16, 2010 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600,16,2


Color 255,0,0;


Print ("                                          Währungsumrechner")
Color 0,0,255
Print
Eingabe$ = Input("Welche Währung wollen Sie umrechnen? ")

Select Eingabe$

;----------------------------------EURO----------------------------------------

Case "euro", "eur"
  Eingabe1$ = Input("In welche Währung wollen sie umrechnen? ")
  Print

Select Eingabe1$

Case "pfund", "uk-pfund", "englische pfund", "pound"
  Euro1# = Input("Betrag Euro: ")
  Print
  Fremd1# = Euro1#*0.8502
  Print "" +Euro1#+ " Euro entsprechen " +Fremd1+ " UK-Pfund."

Case "dollar", "us-dollar", "usd"
  Euro1# = Input("Betrag Euro: ")
  Print
  Fremd1# = Euro1#*1.3667
  Print "" +Euro1#+ " Euro entsprechen " +Fremd1+ " US-Dollar."

Case "yen", "japanische yen"
  Euro1# = Input("Betrag Euro: ")
  Print
  Fremd1# = Euro1#/0.0089
  Print "" +Euro1#+ " Euro entsprechen " +Fremd1+ " Japanische Yen."


Default
  Print ("Bitte überprüfen Sie ihre Eingabe!")

End Select

;---------------------------------US-Dollar--------------------------------------------

Case "dollar", "us-dollar", "usd"
  Eingabe1$ = Input("In welche Währung wollen sie umrechnen? ")
  Print

Select Eingabe1$

Case "pfund", "uk-pfund"
  dollar1# = Input("Betrag US-Dollar: ")
  Print
  Fremd1# = dollar1#*0.6242
  Print "" +dollar1#+ " US-Dollar entsprechen " +Fremd1+ " UK-Pfund."

Case "euro", "eur"
  dollar1# = Input("Betrag US-Dollar: ")
  Print
  Fremd1# = dollar1#/1.3667
  Print "" +dollar1#+ " US-Dollar entsprechen " +Fremd1+ " Euro."

Case "yen", "japanische yen"
  dollar1# = Input("Betrag US-Dollar: ")
  Print
  Fremd1# = dollar1#/0.0121
  Print "" +dollar1#+ " US-Dollar entsprechen " +Fremd1+ " Japanische Yen."


Default
  Print ("Bitte überprüfen Sie ihre Eingabe!")

End Select

;----------------------------------------------Pfund---------------------------------

Case "pfund", "englische pfund", "pound"
  Eingabe1$ = Input("In welche Währung wollen sie umrechnen? ")
  Print

Select Eingabe1$

Case "dollar", "us-dollar", "usd"
  Pfund1# = Input("Betrag Pfund: ")
  Print
  Fremd1# = Pfund1#/0.6242
  Print "" +Pfund1#+ " Englische Pfund entsprechen " +Fremd1+ " UK-Pfund."

Case "euro", "eur"
  dollar1# = Input("Betrag Pfund: ")
  Print
  Fremd1# = Pfund1#/0.8672
  Print "" +Pfund1#+ " Englische Pfund entsprechen " +Fremd1+ " Euro."

Case "yen", "japanische yen"
  dollar1# = Input("Betrag Pfund: ")
  Print
  Fremd1# = Pfund1#/0.0075
  Print "" +Pfund1#+ " Englische Pfund entsprechen " +Fremd1+ " Japanische Yen."

Default
  Print ("Bitte überprüfen Sie ihre Eingabe!")

End Select

;----------------------------------------------Yen-------------------------------------

Case "yen", "japanischer yen" "jpy"
  Eingabe1$ = Input ("In welche Währung wollen Sie umrechnen? ")

Select Eingabe1$

Case "euro", "eur"
  Yen1# = Input("Betrag Yen: ")
  Print
  Fremd1# = Yen1#*0.0089
  Print "" +Yen1#+ " Yen entsprechen " +Fremd1#+ " Euro."

Case "pfund", "englische pfund", "pound"
  Yen1# = Input("Betrag Yen: ")
  Print
  Fremd1# = Yen1#*0.0075
  Print "" +Yen1#+ " Yen entsprechen " +Fremd1#+ " Englische Pfund."

Case "dollar", "us-dollar", "usd"
  Yen1# = Input("Betrag Yen: ")
  Print
  Fremd1# = Yen1#*0.0121
  Print "" +Yen1#+ " Yen entsprechen " +Fremd1#+ " US-Dollar."

Default
  Print ("Bitte überprüfen Sie ihre Eingabe!")

End Select

;---------------------------------------------------------------------------------------------------------

Default
  Print ("Bitte überprüfen Sie ihre Eingabe!")


End Select


WaitKey ()

Xeres

Moderator

BeitragDi, Nov 16, 2010 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Debugger anschalten, der wird diese Zeile markieren:
Code: [AUSKLAPPEN]
Case "yen", "japanischer yen" "jpy"

Da fehlt ein Komma...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group