Repaet...Forever mit 'Esc' beenden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

MoM007

Betreff: Repaet...Forever mit 'Esc' beenden

BeitragDi, Apr 25, 2006 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe eine repeat...forever Schleife und möchte diese mit dem Tastendruck 'Esc' beenden, wie muss ich das anstellen?

Code: [AUSKLAPPEN]


Repeat

 Cls
 Locate 1, 1
 Print "Willkommen zu meinem ersten Programm"
 Print "1 - bla"
 Print "2 - bla bla"
 Print "Ecs - Programm beenden"

 taste$ = Input$("Treffen Sie bitte ihre Auswahl: ")

:Programmcode:

:hier irgendwas zum beenden:
 
Forever

 
AMD XP 2800+, 9600 256RAM, 1GB RAM, WIN XP PRO
 

FBI-blitz

BeitragDi, Apr 25, 2006 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
if keydown(1) then exit


Um das Proggie ganz zu beenden schreibst du statt exit einfach end


Kleine Frage: Dir ist schon bekannt dass in BB das ";" als Kommentar-Zeichen verwendet werden muss und nicht das ":", oder?

MoM007

BeitragDi, Apr 25, 2006 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, es ist mit bekannt das ';' das Kommentarzeichen ist.
Danke!
AMD XP 2800+, 9600 256RAM, 1GB RAM, WIN XP PRO

MBC

BeitragDi, Apr 25, 2006 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
wenns keine forever-schleife sein muss, kannste die bedingung für einen abbruch (bspw. mit Esc) auch angeben, indem du forever durch
Code: [AUSKLAPPEN]
Until Keyhit(1)
ersetzt
Computer sind auch nur Menschen! Wink
 

FBI-blitz

BeitragDi, Apr 25, 2006 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
MBC hat Folgendes geschrieben:
wenns keine forever-schleife sein muss, kannste die bedingung für einen abbruch (bspw. mit Esc) auch mit
Code: [AUSKLAPPEN]
Until Keyhit(1)
angeben


geht auch bei while und do-while schleifen (ne bedingung angeben)

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Apr 25, 2006 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

das geht nicht richtig da du Input() verwendest!
Solange du die input nicht mit Enter abgeschlossen hast, kannst du die Schleife nicht verlassen!
[BB2D | BB3D | BB+]

MoM007

BeitragDi, Apr 25, 2006 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, ich finde die

Code: [AUSKLAPPEN]
Until KeyHit(1)


Lösung am besten, dann brauch ich auch nicht mehr auf input zu achten, weil man es dann als Eingabe machen kann.
AMD XP 2800+, 9600 256RAM, 1GB RAM, WIN XP PRO
 

FBI-blitz

BeitragDi, Apr 25, 2006 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
MoM007 hat Folgendes geschrieben:
Naja, ich finde die

Code: [AUSKLAPPEN]
Until KeyHit(1)


Lösung am besten, dann brauch ich auch nicht mehr auf input zu achten, weil man es dann als Eingabe machen kann.


Die Argumentation hab ich jetzt net ganz verstanden...

MoM007

BeitragDi, Apr 25, 2006 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kann dann doch:

Code: [AUSKLAPPEN]

Repeat
 Print "1 - Addieren"
 Print "2 - Division"
 Print "3 - Subtraktion
 Print "4 - Multiplikation"
 Print "5 - potenzieren"
 Print "Esc - Programm beenden"

 taste$ = Input$("Treffen Sie bitte ihre Auswahl: ")

;Programmcode

Until KeyHit(1)


machen, oder?
Dann kann ich den Ende Befehl als Eingabe tarnen!
AMD XP 2800+, 9600 256RAM, 1GB RAM, WIN XP PRO
 

HW

BeitragDi, Apr 25, 2006 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Das stimmt so nicht, da man erst die Entertaste drücken muss, um überhaupt zur until Prüfung zu kommen.
Das heißt, wenn du einfach nur Escape drückst, passiert zunächst nichts. Erst wenn du danach Enter drückst, wird das Programm/die Schleife beendet.
  • Zuletzt bearbeitet von HW am Di, Apr 25, 2006 21:46, insgesamt einmal bearbeitet
 

ke^kx

BeitragDi, Apr 25, 2006 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Leider eben nicht Wink Hast du deinen Code mal ausgeführt und während da Stand: "Treffen Sie bitte ihre Auswahl: " Escape gedrückt? Zwar wird das Programm sich beenden, nachdem du Escape gedrückt hast und nachdem du dann Enter gedrückt hast. Aber das ist eigenlich unsauber programmiert.

Wenn du erstmal nur z.B. ein Quiz ohne weitere Grafikausgabe programmieren willst, solltest du dich für einen Code ohne Hauptschleife entscheiden, um ersteinmal die Grundlagen zu verstehen. Andernseits musst du versuchen ohne Input klarzukommen, da dieses das Programm stoppt und entweder nach einer Input-Routine Suche n oder Buttons benutzen.

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group