Fallunterscheidung

Um verschiedene Situationen zu unterscheiden, kennt BASIC die Befehle IF (falls) und THEN (dann); in einigen Varianten der Sprache kommt noch das Schlüsselwort ELSE (anderenfalls) hinzu. Der folgende Programmcode liest z. B. mit INPUT eine Zahl ein und entscheidet dann, ob sie kleiner als 100 ist oder nicht:

10 PRINT "GIB WERT EIN: ";
20 INPUT X
30 IF X < 100 THEN PRINT "KLEINER ALS 100"
40 IF X >= 100 THEN PRINT "GROESSER ODER GLEICH 100"

Variablennamen wie X dürfen übrigens nicht beliebige Längen haben; für maximale Kompatibilität verwenden Sie nur Namen mit Länge 1 (also einzelne Buchstaben). Der C64 akzeptiert längere Namen, unterscheidet aber nur die ersten zwei Buchstaben: X und XY sind dort verschiedene Variablen, aber XY und XYZ sind es nicht. Beim Schneider CPC dürfen die Variablennamen bis zu 40 Zeichen lang sein.

Schleifen

Eine einfache Schleife haben Sie schon gesehen: Mit GOTO können Sie jederzeit zu einer früheren Stelle im Code zurück springen und so immer wieder dieselben Befehle ausführen. Beliebter ist aber die so genannte Zählschleife: Sie verwendet eine Variable, die nacheinander verschiedene Werte annimmt. Das folgende Beispiel gibt alle ungeraden Zahlen zwischen 1 und 9 aus:

10 FOR I = 1 TO 9 STEP 2
20 PRINT I,
30 NEXT I

Die Variable I erhält in Zeile 10 zunächst den Wert 1, dann wird dieser in Zeile 20 ausgegeben, und durch den Befehl NEXT I in Zeile 30 geht es zurück zum Anfang der Schleife. Normal würde eine FOR-Schleife nun den Wert um 1 erhöhen, aber durch das Schlüsselwort STEP addiert der Interpreter stattdessen immer 2 – der Wert von I im nächsten Durchlauf ist also 3, danach 5, 7 und schließlich 9. Wenn der Endwert erreicht ist, bricht die Schleife ab (Abbildung 6).

Abbildung 6: Mit einer FOR-Schleife wiederholen Sie gleichartige Berechnungen mit verschiedenen Werten.

Schleifen können Sie auch schachteln und wie folgt z. B. eine kleine Multiplikationstabelle (das kleine Einmaleins) ausgeben:

10 FOR I = 1 TO 10
20 FOR J = 1 TO 10
30 PRINT I; " x "; J; " = "; I*J
40 NEXT J
50 NEXT I

Beachten Sie, dass hier in Zeile 40 zunächst die "innere Schleife" beendet wird (FOR JNEXT J) und dann in Zeile 50 die "äußere Schleife" (FOR INEXT I).

Bei den meisten BASIC-Dialekten können Sie im NEXT-Befehl auch auf den Namen der Variable verzichten.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

title_2015_02

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet EUR 9,80. Weitere Informationen zum Heft finden Sie auf der EasyLinux-Homepage.

Das EasyLinux-Jahresabo mit Prämie kostet ab EUR 33,30. Details zum EasyLinux-Jahresabo finden Sie im Medialinx-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 4 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Admin Probleme mit Q4os
Thomas Weiss, 30.03.2015 20:27, 6 Antworten
Hallo Leute, ich habe zwei Fragen zu Q4os. Die Installation auf meinem Dell Latitude D600 verl...
eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 1 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...
Start-Job behindert Bootvorgang, Suse 13.2, KDE,
Wimpy *, 20.02.2015 10:32, 4 Antworten
Beim Bootvorgang ist ein Timeout von 1 Min 30 Sec. weil eine Partition sdb1 gesucht und nicht gef...
Konfiguration RAID 1 mit 2 SSDs: Performance?
Markus Mertens, 16.02.2015 10:02, 6 Antworten
Hallo! Ich möchte bei einer Workstation (2x Xeon E5-2687Wv3, 256GB RAM) 2 SATA-SSDs (512GB) al...