content

Parameterprüfung

Ausgangslage

001.png

Das alterwurde mit -22übergeben.

Erwartetes Ergebnis:

  • Fehlermeldung

  • Defaultwert für das alterwird angenommen.

002.png

Tatsächliche Ergebnis:

  • keine Fehlermeldung

  • alter = -22

003.png
004.png

Auch bei einem zu großem Wert kam keine Fehlermeldung und auch der Defaultwert wurde nicht gesetzt.

if Abfrage

Syntax

if (condition)
{
    command;
    command;
}
else
{
    command;
    command;
}

Logische Verknüpfungen

Die Bedingungen können wie folgt verknüpft werden:

  • and &&

  • or ||

  • xor ^

  • not !

a<4   b>3    |  ((a<4)&&(b>3))  |  ((a<4)||(b>3))  |  ((a<4)^(b>3))
true  true   |       true       |       true       |       false
true  false  |       false      |       true       |       true
false true   |       false      |       true       |       true
false false  |       false      |       false      |       false
a<4    |  ! (a<4)
true   |   false
false  |   true

Vergleichsoperatoren

Es stehen folgende Vergleichsoperationen zur Verfügung.

a == 3        Gleichheit
a < 5         Kleiner
a > 7         Grosser
a <= 3        Kleiner gleich
a >= 7        Grosser gleich

Es gbit keine Gleichheit bei Kommazahlen!

Bei einem String muss man über Methoden den Vergleich anstellen.

setAlter

Jede Änderung der Eigenschaft alterwird über die setAlter() Methode durchgeführt. Das ist der zentrale Punkt für die Parameterprüfung!

    public void setAlter(int alter)
    {
        if ((alter >= 14) && (alter < 65))
        {
            this.alter = alter;
        }
        else
        {
            System.out.println("Fehler: das Alter muss zwischen 14 und 65 sein!");
            this.alter = 14;
        }
    }

!!! VERBOTEN !!!

    public Student(String name, int alter, boolean matura)
    {
        this.name = name;
        this.alter = alter;
        this.matura = matura;
    }

Dabei werden sämtliche Parameterprüfungen übersprungen!!!

Test

Unter 14 Jahre

005.png
006.png
007.png

Gültig

008.png
009.png

Über 65 Jahre

010.png
011.png
012.png