Informatik 04 - AWTest Java Kontrollstrukturen
Was sind zusammengesetzte Anweisungen?
- mehrere Anweisungen bilden eine Einheit
Welche Arten von Kontrollstrukturen gibt es?
- Sequenz - Selektion - Iteration - Ausnahmen - Methodenaufruf
Was sind elementare Anweisungen?
- Zuweisungsanweisungen (ganz = 27*3;) - Präfix- oder Postfixformen (i++;) - Deklaration von Variablen (int i) - Deklaration von Variablen mit Initialisierung des Wertes (Uhr meineUhr = newUhr(); - Methodenaufruf (meineUhr.liesUhrzeit(); - Leeranweisung (;)
Wie kann eine Aufzählungsfall mit switch programmiert werden?
- da jede case-Anweisung nur ein Literal zulässt, ist case 4, 6, 9, 11: nicht möglich - eine case-Anweisung darf jedoch mehrere case - Abfragen enthalten case 4: case 6: case 9: case 11: tage = 30; break;
Wozu dienen Mehrfachverzweigungen (switch-Anweisung)?
- dienen dazu, wahlweise einen von mehreren Programmzweigen (Anweisungen) auszuführen - falls der Selektor vom: Wert 1, dann führe Aktion 1 aus Wert 2, dann führe Aktion 2 aus usw andernfalls führe die Sonst-Aktion aus (default)
Zwischen welchen Anweisungen wird bei einer Sequenz unterschieden?
- elementare Anweisungen - zusammengesetzte Anweisungen
Was passiert, wenn es keine Übereinstimmung mit einem case-Literal in einer switch-Anweisung gibt?
- existiert ein default-Zweig, so wird dieser ausgeführt - sonst wird mit der Anweisung nach der switch-Anweisung fortgefahren
Auch bei der zweiseitig bedingten Anweisung müssen Blöcke in geschweifte Klammern eingeschlossen werden. Was passiert wenn die geschweiften Klammern im false-Zweig vergessen werden, was wenn im true-Zweig?
- false: der Quellcode bleibt syntaktisch korrekt, kann jedoch logisch falsch sein (else) - true: Compiler meldet Syntax-Fehler, weil er else nicht zuordnen kann (if)
Was sind Vorteile und Nachteile der switch-Anweisung gegenüber der if-Anweisung?
- if kann nur immer eine Bedingung abgefragt werden bei switch können mehrere Bedingungen abgefragt werden - allerdings können bei switch nur ganze Zahlen oder Zeichen abgefragt werden, da ist if variabler
Welche Arten von Verzweigungen gibt es in Java?
- if-Anweisung - switch-Anweisung
Was ist eine zweiseitig bedingte Anweisung?
- if-else-Verzweigung - vollständige Alternative - falls die Bedingung wahr ist, dann führe die Anweisungen 1 aus, sonst führe die Anweisungen 2 aus
Was ist ein Block?
- ist eine Folge von Anweisungen, die durch geschweifte Klammern eingeschlossen sind - können auch Variablendeklarationen enthalten - um die Lesbarkeit zu erhöhen, sollten alle Anweisungen eines Blockes, die gleiche Einrücktiefe haben
Was ist die if-Anweisung und wie arbeitet sie?
- ist eine einseitig bedingte Anweisung - falls eine Bedingung wahr ist, führe diese Anweisung aus - unvollständige Alternative
Was müssen Sie tun, um eine switch-Anweisung zu verlassen?
- jede case-Anweisung muss mit Hilfe von break; beendet werden - ohne break werden auch die Anweisungen des nächsten case-Literals abgearbeitet
Was sind / bewirkt Selektion?
- mit der Hilfe von Selektionen werden Verzweigungen programmiert - d.h. in Abhängigkeit von einer Bedingung werden verschiedene Anweisungen ausgeführt, also in verschiedene Blöcke verzweigt - nennt man auch Verzweigungen
Was sind Kontrollstrukturen?
- sind Anweisungen (Control Flow Statements) mit denen der Programmablauf gesteuert werden kann
Was ist eine Leeranweisung und wozu dient sie?
- syntaktisch korrekte Anweisung - bewirkt nichts - findet Anwendung, wenn die Syntax eine Anweisung vorschreibt, aber keine Aktion erfolgen soll
Wie lauten die Merkmale einer Sequentiellen Abarbeitung?
- zu einem bestimmten Zeitpunkt wird genau eine Anweisung ausgeführt - jede Anweisung wird nur einmal ausgeführt - keine Anweisung wird ausgelassen - Anweisungen werden genau in der Reihenfolge ausgeführt, in der sie aufgeschrieben wurden
Was bewirkt die Kontrollstruktur Sequenz?
Anweisungen werden nacheinander ausgeführt
Was bewirkt die Kontrollstruktur Iteration?
Anweisungen werden wiederholt abgearbeitet (Programmschleifen)
Was bewirkt die Kontrollstruktur Methodenaufruf?
Beim Aufruf einer Methode wird die Programmsteuerung an die aufgerufene Methode übergeben. Nach dem Ende der gerufenen Methode wird die Abarbeitung mit der Anweisung nach dem Aufruf fortgesetzt
Was bewirkt die Kontrollstruktur Ausnahmen?
Beim Auftreten von Ausnahmesituation werden bestimmte Anweisungen ausgeführt
Was bedeuten Lineare Algorithmen?
Die Anweisungen werden von der JVM nacheinander ausgeführt, d.h. von oben nach unten, von links nach rechts, falls in einer Zeile mehr als eine Anwendung stand
Wie kann die Darstellung von Kontrollstrukturen erfolgen?
Mit Hilfe von Nassi-Shneidermann-Diagrammen - Struktogramm - wird von oben nach unten in der Folge der aneinandergereihten Anweisungsrechteecke gelesen
Muss in einer switch-Anweisung der default-Teil zwingend angegeben werden?
Nein, er ist optional
Welche Datentypen kann die switch-Anweisung nur abfragen?
char, byte, short, int, String oder Enum
Was bedeutet Schachtelung von Verzweigungen?
damit ist gemeint, dass sowohl der true-Zweig, also auch der false-Zweig wiederum bedingte Anweisungen enthalten können
Zu welchem if-Zweig gehört in einer geschachtelten Anweisung der else-Zweig?
der else-Zweig gehört in einer geschachtelten Anweisung immer zum letzten, direkt vor ihm stehenden if-Zweig
Wie lautet die Syntax einer einfachen if-Anweisung
if (boolescher Ausdruck){ Anweisung; } - der boolesche Ausdruck kann nur wahr oder falsch sein - mehrere Anweisungen immer in geschweiften Klammern
Wie kann man beim Nutzen von booleschen Variablen (ok) die Anweisung if (ok == true)...; abkürzen?
if (ok)... analog: if (!ok)... anstelle von if(ok == false)
Wie lautet die Syntax der if-else-Verzweigung?
if(Bedingung) { //true Anweisungen } else { //false-Anweisungen }
Was bewirkt die Kontrollstruktur Selektion?
in Abhängigkeit von einer Bedingung werden verschiedene Programmzweige abgearbeitet
Wie lautet die Syntax der switch-Anweisung?
switch(selektor){ case 1: //Anweisungen; break; case 2: // Anweisungen break; default: //Sonst-Anweisung }
Wann verwenden Sie return, um einen switch-Block zu verlassen?
um die Funktion direkt mit einem Rückgabewert zu verlassen