Programmieren mit Java

Werbung
Programmieren mit Java
Kontrollstrukturen: Bedingte Anweisungen / Verzweigungen
Kontrollstrukturen steuern den Programmablauf. Über die Auswertung logischer Ausdrücke werden
im Programm die Weichen gestellt. Die bedingte Anweisung ist die einfachste Form der Programmsteuerung. Dabei werden einzelne oder mehrere Anweisungen oder Methodenaufrufe nur
unter ganz bestimmten Bedingungen ausgeführt. Der Aufbau einer bedingten Anweisung sieht folgendermaßen aus:
if (ausdruck)
{
anweisungen
...
}
else
{
anweisungen
...
}
Der ausdruck wird bewertet. Ergibt er wahr (true), werden die Anweisungen direkt hinter dem if
ausgeführt. Ergibt der ausdruck falsch (false), werden die Anweisungen hinter dem else ausgeführt.
Man spricht von einer zweiseitigen Auswahl. Die if-Anweisung braucht nicht zwingend einen elseZweig. Man spricht dann von einer einseitigen Auswahl.
In einem Struktogramm sieht die bedingte Anweisung folgendermaßen aus:
zweiseitige Auswahl
einseitige Auswahl
Auswahl/Entscheidung
Auswahl/Entscheidung
Ausdruck
J
Anweisung
Ausdruck
J
N
Anweisung Anweisung
N
Für die Darstellung des logischen Ausdrucks werden Vergleichs- und Gleichheitsoperatoren gebraucht. Java kennt die folgenden:
Vergleichsoperationen
Operator
==
!=
<
>
<=
>=
meint
gleich
ungleich
kleiner als
größer als
kleiner gleich
größer gleich
Beispiel
x==3
x!=3
x<3
x>3
x<=3
x>=3
Beispiel: if (x + x > y)
Für die Zusammenstellung logischer Ausdrücke müssen oft mehrere Vergleiche zusammengefasst
werden. Dafür gibt es logische Operatoren, von denen Java die folgenden kennt:
Logische Operationen
Operator
&
&&
|
||
^
!
Beispiel: (x = = 2 | | y != 2 && z >= 16)
Bedeutung
und
logisches und
oder
logisches oder
Exklusives Oder
Nicht
(AND)
(OR)
(XOR)
(NOT)
Aufgaben
Entwirf für die Programme Struktogramme.
1. Schreib ein Programm If01, das eine Variable vom Typ Ganzzahl deklariert und mit einem beliebigen Wert belegt. Aus dieser Zahl ist die (Quadrat-)Wurzel zu berechnen. Die Wurzelberechnung darf aber nur durchgeführt werden, wenn der Inhalt der Variablen größer als Null ist.
2. Nach der deutschen Zinsrechnung besteht der Zinsmonat aus 30 Tagen. Wenn man beispielsweise am 31.01. einen Betrag auf sein Sparkonto einzahlt, werden die Zinsen ab dem 30.01. berechnet für den Zeitraum bis zum Ende des Jahres.
Schreib ein Programm If02, das die Zinsen für einen Betrag, der auf dem Sparkonto eingezahlt
wird, vom Tag der Einzahlung bis zum Jahresende berechnet. Der Zinssatz sei mit 3% konstant.
(Hilfestellung: Das Einzahlungsdatum ist in zwei Zahlenwerte Tag und Monat aufzulösen. Die
Zinsen berechnen sich aus Betrag * ZinsTage * Zinssatz / 360 * 100.)
3. Schreib ein Programm If03, das drei Variablen vom Typ Ganzzahl deklariert und der ersten den
Wert 2, der zweiten den Wert 3 und der dritten den Wert 4 zuweist. Das Programm soll eine
zweiseitige Auswahl beinhalten, bei der auf dem Bildschirm das Wort "blau" ausgegeben werden
soll, wenn das Quadrat der ersten Variablen größer oder gleich ist dem Wert der dritten Variablen. Andernfalls soll auf dem Bildschirm "rot" ausgegeben werden.
4. Der Staat erhebt Umsatzsteuer, auch Mehrwertsteuer (MWSt) genannt. Sie beträgt in der Regel
19% des Warenwerts. Für einige Warengruppen, wie zum Beispiel Lebensmittel, werden nur 7%
erhoben. Bei einer Rechnungsschreibung wird außer dem Nettopreis ein Buchstabe als Mehrwertsteuer-Kennzeichen verwendet. Ist dieser Buchstabe gleich "1", sind 7% Mehrwertsteuer zu
berechnen, andernfalls 19%. Schreib das entsprechende Programm If04.
5. In einem Unternehmen beträgt laut Betriebsvereinbarung die durchschnittliche monatliche Arbeitszeit 175 Stunden. Leistet ein Mitarbeiter mehr als 175 Stunden, werden die Überstunden mit
einem Aufschlag von 10% vergütet. Der Stundenlohn beträgt 12 Euro. Schreib ein Programm
If05, das die Arbeitsstunden, den Stundenlohn, den Gesamtstundenlohn, den Überstundenzuschlag und den Bruttolohn auf dem Bildschirm ausgibt.
6. Welche Ergebnisse liefert das folgende Programm, wenn man an der markierten Stelle für die
Pünktchen jeweils die Programmzeilen a-e einsetzt?
class If06
{
public static void main(String[ ] args)
{
int x=2, y=3, z=4;
. . .
{
System.out.println("wahr!");
}
else
{
System.out.println("falsch!");
}
}
}
a) if (x = = 2 && y <= 3)
b) if (x = = 2 | | y != 2 && z * z >= 16)
c) if (y = = 3 && !(z = = 1))
d) if (x != 2 && y > 3)
e) if (x < y | | x > z)
Herunterladen