Problem mit If-Schleife: Egal welcher Input, immer dasselbe
Übersicht

NikonoobBetreff: Problem mit If-Schleife: Egal welcher Input, immer dasselbe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, ich komme heute mit einer (wahrscheinlich ziemlich dummmen) Anfängerfrage: Ich habe den folgenden Code:
Code: [AUSKLAPPEN] Graphics 800,600,16
SetBuffer BackBuffer() Text 0,0,"Kleiner Taschenrechner (NKT). Fahre fort beliebiger Taste" WaitKey() Cls Text 0,0,"Möchtest du die Anleitung zur Benutzung des Taschenrechners lesen?" Locate 0,14 anleitung = Input("Gib j ein für JA oder n für NEIN: ") If anleitung = j Then Cls Text 0,0,"Es ist ganz einfach: Du wirst zur Eingabe von zwei Zahlen aufgefordert." Text 0,14,"Die erste Zahl sollte immer die größere von beiden sein." Text 0,28,"Danach werden sofort 5 Rechnungen durchgeführt:x+y,x-y,x*y,x/y,x^y" Text 0,42,"Drücke nun eine Taste um zum Rechner zu gelangen." ElseIf anleitung = n Then Cls Text 0,0,"Drücke eine beliebige Taste um fortzufahren." EndIf Das ganze soll später ein kleiner Rechner werden, allerdings tritt hier mein Problem auf: Ich will die Möglichkeit bieten, eine Anleitung einzublenden, mithilfe von einem Input. Allerdings wird die Anleitung im Moment IMMER eingeblendet, auch wenn ich etwas ganz anderes als j oder gar n eingebe! Kennt jemand die Lösung des Problems? Wo liegt mein Fehler? |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Setz in der Abfrage
Code: [AUSKLAPPEN] If anleitung = j Then
und Code: [AUSKLAPPEN] elseif anleitung = n Then
mal Anführungszeichen. Sonst vergleicht Blitz die Eingabe mit der Variable j. Diese ist 0 und ein String (die Eingabe) ist auch 0 -> Abfrage ergibt True. Übrigens empfehle ich dir auch mal Flip zu verwenden... |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Nikonoob |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das habe ich auch schon versucht, dann passiert aber gar nichts, egal was ich drücke, es kommt immer sofort "Program has ended" | ||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, weil "anleitung" ein Integer und keine Zeichenkette ist...
Mir dünkt, du solltest dir nochmal die Grundlagen anschauen! |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() Text 0,0,"Kleiner Taschenrechner (NKT). Fahre fort beliebiger Taste" WaitKey() Cls Text 0,0,"Möchtest du die Anleitung zur Benutzung des Taschenrechners lesen?" Locate 0,14 anleitung$ = Input("Gib j ein für JA oder n für NEIN: ") If anleitung$ = "j" Then Cls Text 0,0,"Es ist ganz einfach: Du wirst zur Eingabe von zwei Zahlen aufgefordert." Text 0,14,"Die erste Zahl sollte immer die größere von beiden sein." Text 0,28,"Danach werden sofort 5 Rechnungen durchgeführt:x+y,x-y,x*y,x/y,x^y" Text 0,42,"Drücke nun eine Taste um zum Rechner zu gelangen." WaitKey ElseIf anleitung$ = "n" Then Cls Text 0,0,"Drücke eine beliebige Taste um fortzufahren." WaitKey EndIf |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Fehler:
Code: [AUSKLAPPEN] anleitung = Input("Gib j ein für JA oder n für NEIN: ")
Die Variable anleitung kann nur Ganzzahlen speichern, setze ein $ dahinter, damit sie Strings speichern kann 2. Fehler Code: [AUSKLAPPEN] If anleitung = j Then
Setze um j Anführungsstriche (das gleiche gilt auch für n) |
||
Nikonoob |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ahhhh, danke....ich war so dumm: Beides hatte ich schonmal gemacht, sowohl j und n in anführungszeichen gesetzt als auch anleitung als string zu machen....nur beides zusammen hab ich nicht probiert^^
naja, danke, sorry wegen dem anfängerfehler... |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] WaitKey
Und wenn ich mich nicht täusche, fehlen da noch zwei Klammern... |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
Lador |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Soweit ich informiert bin, ist WaitKey() dafür da, um einen bestimmten ASCII-Code zu erhalten, von der Taste die gedrückt wird. WaitKey hält das Programm ebenfalls solange an, bis eine Taste gedrückt wird, allerdings liefert es keinen Wert zurück.
MFG Lador |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Lador
Hier mal das Testprogramm für Waitkey() ... und es doch! ![]() Code: [AUSKLAPPEN] Repeat
Print WaitKey() Until KeyDown(1) |
||
[BB2D | BB3D | BB+]
|
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du von einer Funktion keinen Rückgabewert brauchst, kannst du in BB die Klammern weglassen
d.h. mit Waitkey und Waitkey() wird die selbe Funktion aufgerufen, allerdings liefert Waitkey den Wert 0 zurück, währen Waitkey() eine Ganzzahl als Ergebnis zurückliefert. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group