Die Webseiten der Fachschaft Informatik am ERG Saalfeld


elsif

Bei Mehrfachverzweigungen kann die if-Anweisung beliebig geschachtelt werden. Für den Fall, dass verschiedene Fälle der Reihe nach abgearbeitet werden sollen, gibt es die elsif-Anweisung.

 

Pseudocode

 punkte = 12

 wenn punkte größer oder gleich 13
    dann schreibe 'sehr gut'
 wenn punkte zwischen 10 und 12 liegen
    dann schreibe 'gut'
 wenn punkte zwischen 7 und 9 liegen
    dann schreibe 'befriedigend'
 wenn punkte gleich 5 oder gleich 6 sind
    dann schreibe 'genügend'
 sonst
    schreibe 'geht gar nicht'

 

Programm

 use strict;
 use warnings;

 my $punkte = 12;

 # der "Einser"-Bereich
 if ($punkte >= 13) {
   print 'sehr gut', "\n";
 }
 # das wäre eine 2
 elsif ($punkte >= 10) {
   print 'gut', "\n";
 }
 # das wäre eine 3
 elsif ($punkte <= 9  and  $punkte >= 7) {
   print 'befriedigend', "\n";
 }
 # das wäre ein 4 und noch bestanden
 elsif ($punkte == 6  or  $punkte == 5) {
   print 'genügend', "\n";
 }
 # diese Punktzahl ist indiskutabel! (von 0 bis 4)
 else {
   print 'geht gar nicht!', "\n";
 };

 __END__

Anmerkung: in diesem Beispiel mit Punkte gleich 12 wird zuerst überprüft, ob die Punktzahl größer/gleich 13 ist. Da das nicht der Fall ist, wird überprüft, ob die Punktzahl größer/gleich 10 ist. Da das gilt, wird 'gut' ausgegeben und die Anweisung verlassen.

 

Aufgaben

  1. Bringen Sie das Programm zum Laufen und testen Sie dieses.
  2. Für den 3er-Bereich reicht eine Bedingung. Verkürzen Sie diese elsif-Zeile und eliminieren Sie das and.
  3. Auch für den 4er-Bereich reicht eine Bedingung. Verkürzen Sie diese elsif-Zeile und eliminieren Sie das or.
  4. Erstellen Sie zu dem Programm ein Struktogramm.
  5. Ändern Sie das Programm so ab, dass es entsprechend der bekannten Punktegrenzen die Noten angibt.
  6. Ändern Sie das Programm so ab, dass bei falscher Eingabe (> 15 bzw. < 0) eine entsprechende Meldung kommt.

 

Weblinks

 

zurück


© ERG Saalfeld   -   Hans-Dietrich Kirmse     letztes Update: 3.03.2015