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
- Bringen Sie das Programm zum Laufen und testen Sie dieses.
- Für den 3er-Bereich reicht eine Bedingung. Verkürzen Sie diese elsif-Zeile und eliminieren Sie das and.
- Auch für den 4er-Bereich reicht eine Bedingung. Verkürzen Sie diese elsif-Zeile und eliminieren Sie das or.
- Erstellen Sie zu dem Programm ein Struktogramm.
- Ändern Sie das Programm so ab, dass es entsprechend der bekannten Punktegrenzen die Noten angibt.
- Ä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
|