Heute zeige ich euch, was ihr mit dem Befehl if machen könnt. Wenn ihr eine if-Abfrage macht, kann euer Programm auf zwei verschiedene Arten weitergehen. Hier habe ich ein Struktogramm für euch, damit ihr besser sehen könnt, wie so eine If-Abfrage aufgebaut ist.
![]()
Bei einer if-Anweisung kann als Antwort eine von zwei Wahrheitswerten gegeben werden. Entweder true oder false. Oft werden mit einem If-Block 2 Variablen verglichen.
In dieser Tabelle seht ihr alle Vergleichsoperatoren, die ihr in einer IF-Abfrage verwenden könnt.
| kleiner | < |
| kleiner gleich | <= |
| größer | > |
| größer gleich | >= |
| gleich | == |
| ungleich | != |
Eine if Verzweigung ist wie folgt aufgebaut:
if (Bedingung)
{
Anweisungsblock 1;
}
else
{
Abweisungsblock 2;
}
Zum Testen der if-Abfrage schreiben wir ein kleines Kassenprogramm. Das Programm soll zunächst abfragen, ob er Kunde eine Kundenkarte besitzt. Hier kann man dann per Usereingabe wählen, ob eine Kundenkarte vorhanden (1) oder nicht vorhanden (0) ist. Danach sollt ihr den User auffordern, den Geldbetrag von 3 Produkten einzugeben. Diese 3 eingegebenen Werte sollt ihr anschließend addieren. Wenn der Kunde eine Kundenkarte besitzt, soll es auf den Gesamtbetrag 5 % Rabatt geben. Danach sollt ihr den Betrag ausgeben.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package kasse;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
*
* @author Andreas
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("Besitzt der Kunde eine Kundenkarte? (Ja=1, Nein=0)");
try {
BufferedReader input=new BufferedReader (new InputStreamReader (System.in));
String kundenkarte;
kundenkarte = input.readLine();
double kundekarte_double;
kundekarte_double=Double.parseDouble(kundenkarte);
System.out.println("Bitte geben Sie den ersten Preis ein");
String preis1;
preis1 = input.readLine();
double preis1_double;
preis1_double=Double.parseDouble(preis1);
System.out.println("Bitte geben Sie den zweiten Preis ein");
String preis2;
preis2 = input.readLine();
double preis2_double;
preis2_double=Double.parseDouble(preis2);
System.out.println("Bitte geben Sie den dritten Preis ein");
String preis3;
preis3 = input.readLine();
double preis3_double;
preis3_double=Double.parseDouble(preis3);
double gesamtbetrag;
gesamtbetrag = preis1_double + preis2_double + preis3_double;
double endbetrag;
if (kundekarte_double==1)
{
endbetrag = gesamtbetrag * 0.95;
}
else
{
endbetrag = gesamtbetrag;
}
System.out.println("Bitte zahlen Sie : " +endbetrag+ " €");
}
catch (Exception ex)
{
System.out.println("Fehlerhafte eingabe");
}
// TODO code application logic here
}
}
Ich werde jetzt nicht mehr jede Zeile einzeln beschreiben, da die einfachen Befehle jedem klar sein sollten nach den ersten Tutorials.
- In den Zeilen 22–24 wird eingelesen, ob der Benutzer eine Kundenkarte besitzt.
- In den Zeilen 25 und 26 wird der String in ein Double umgewandelt.
- In den Zeilen 28 bis 44 werden die Werte eingelesen und in ein Double umgewandelt.
- In den Zeilen 45 und 46 werden die Werte addiert und in der Variablen „gesamtbetrag“ gespeichert.
- In der Zeile 49 wird die Variable „endbetrag“ als double definiert.
- In der Zeile 51 wird per if-Abfrage überprüft, ob die Variable kundekarte_double = 1 ist. Das ist dafür da, um herauszufinden, ob der User eine Kundenkarte besitzt.
- Wenn in der Variablen kundekarte_double eine 1 steht und der User somit eine Kundenkarte besitzt, wird die Zeile 53 bearbeitet. Hier wird die Variable „gesamtbetrag“ mit 0,95 mal genommen und in der Variablen „endbetrag“ gespeichert. So kann man dem Kunden 5 % Rabatt geben.
- Wenn in der Variablen kundekarte_double eine 0 oder eine andere Zahl steht, wird in der Zeile 57 weitergearbeitet. Dort wird einfach der Inhalt der Variablen „gesamtbetrag“ in die Variable „endbetrag“ übertragen.
- In der Zeile 60 wird der Endbetrag ausgegeben.
Hier geht es zu den bisherigen Teilen der Artikelserie Java:
Die Grafik nennt man „Struktogramm“. Und in der Tabelle finden sich „Vergleichsoperatoren“. Das sind sicher wichtige Begriffe, die du dazu schreiben solltest.
Am Ende hast du vergessen das Programm im Code-Tags zu setzen. Man kann es so kaum lesen… 🙂
Da muss ich mich ja fast schämen was mir hier alles passiert ist oder besser gesagt was ich vergessen habe. Habe jetzt die ganzen sachen Hinzugefügt die gefehlt haben.
wo liegt mein fehler ?
bekomme diese fehlermeldung :
Exception in thread „main“ java.lang.RuntimeException: Uncompilable source code – cannot find symbol
symbol: class Eception
location: class kassenprogramm.KassenProgramm
at kassenprogramm.KassenProgramm.main(KassenProgramm.java:20)
Java Result: 1
im output
ok hab den fehler gefunden beim“ catch (Exeption ex) “
fehlte das x in Exeption danke trotzdem sehr gut erklärt das ganze
Hallo, bei mir wird außer der Aufforderung nichts angezeigt woran liegt das?
Moment, jetzt kommt noch fehlerhafte Eingabe. Aber nie ein betrag. normal?
Entschuldigen Sie bitte, ich stand auf dem Schlauch, jetzt kann ichWerte eingeben 🙂