Script Java

Script Java Script Java

29.01.2014 Aufrufe

3.1 int, boolean und Programmstrukturen int errorCount=0; if (odd.getState()^number.isOdd()) errorCount++; if (sameDigits.getState()^number.hasSameDigits()) errorCount++; if (square.getState()^number.isASquare()) errorCount++; if (errorCount==0) message.setText("All answers are correct!"); else if (errorCount==1) message.setText("There is one error!"); else message.setText("There are "+errorCount+" errors!"); ausgeführt. Liefert die Bedingung aber false, werden die obigen Anweisungen übersprungen. Falls ein else statement folgt, wird mit der Interpretation bei diesem fortgesetzt, ansonsten die Methode verlassen. Abbildung 3-7 veranschaulicht dies anhand eines Flussdiagramms. if if Expression? true Statements Expression? true Statements false false Ende else Statements Ende Abbildung 3-7: if statement ohne (links) und mit else Anweisung (rechts) In obigem Programm hat es nun ein else statement. Nach diesem folgt aber wiederum ein if mit einem else statement. 74

3.1 int, boolean und Programmstrukturen else if (event.getActionCommand().equals("NEXT")) { number.nextValue(); message.setText("Check if "+number.toString()); odd.setState(false); sameDigits.setState(false); square.setState(false); } else if (event.getActionCommand().equals("CHECK")) { message.setText(number.toString()+" has the properties"); odd.setState(number.isOdd()); sameDigits.setState(number.hasSameDigits()); square.setState(number.isASquare()); } Man hat also die Möglichkeit, mehrere if-/else Anweisungen ineinander zu verschachteln. Dabei kann die Verschachtelungstiefe beliebig tief sein. Im obigen Programmauszug überprüft das erste if, ob der Button NEXT aktiviert wurde. Falls dies zutrifft, werden die Anweisungen number.nextValue(); message.setText("Check if "+number.toString()); odd.setState(false); sameDigits.setState(false); square.setState(false); ausgeführt, ansonsten wird zum zugehörigen else statement gewechselt: else if (event.getActionCommand().equals("CHECK")) Hier trifft man erneut auf ein if statement, dieses Mal aber ohne else statement. In der if Anweisung wird wieder abgefragt, ob der Button CHECK aktiviert wurde. Bei Zutreffen werden die Anweisungen message.setText(number.toString()+" has the properties"); odd.setState(number.isOdd()); sameDigits.setState(number.hasSameDigits()); square.setState(number.isASquare()); aufgerufen, ansonsten wird die Methode actionPerformed() verlassen. Die bedingten Anweisungen in der Methode actionPerformed() untersuchen also, welcher Button in der graphischen Benutzeroberfläche aktiviert wurde, um dann entsprechend zu reagieren. Wurde keiner der Buttons gedrückt, geschieht nichts. Siehe auch: 3.1.2.18 3.1.1.11 Logische Operatoren und arithmetischer Inkrement-/Dekrement-Operator Dringen wir nun tiefer in die Methode actionPerformed() ein. Wird durch den Benutzer der Button DONE aktiviert, so werden die Anweisungen 75

3.1 int, boolean und Programmstrukturen<br />

else if (event.getActionCommand().equals("NEXT")) {<br />

number.nextValue();<br />

message.setText("Check if "+number.toString());<br />

odd.setState(false);<br />

sameDigits.setState(false);<br />

square.setState(false);<br />

} else if (event.getActionCommand().equals("CHECK")) {<br />

message.setText(number.toString()+" has the properties");<br />

odd.setState(number.isOdd());<br />

sameDigits.setState(number.hasSameDigits());<br />

square.setState(number.isASquare());<br />

}<br />

Man hat also die Möglichkeit, mehrere if-/else Anweisungen ineinander zu verschachteln.<br />

Dabei kann die Verschachtelungstiefe beliebig tief sein.<br />

Im obigen Programmauszug überprüft das erste if, ob der Button NEXT aktiviert wurde.<br />

Falls dies zutrifft, werden die Anweisungen<br />

number.nextValue();<br />

message.setText("Check if "+number.toString());<br />

odd.setState(false);<br />

sameDigits.setState(false);<br />

square.setState(false);<br />

ausgeführt, ansonsten wird zum zugehörigen else statement gewechselt:<br />

else if (event.getActionCommand().equals("CHECK"))<br />

Hier trifft man erneut auf ein if statement, dieses Mal aber ohne else statement. In der if<br />

Anweisung wird wieder abgefragt, ob der Button CHECK aktiviert wurde. Bei Zutreffen<br />

werden die Anweisungen<br />

message.setText(number.toString()+" has the properties");<br />

odd.setState(number.isOdd());<br />

sameDigits.setState(number.hasSameDigits());<br />

square.setState(number.isASquare());<br />

aufgerufen, ansonsten wird die Methode actionPerformed() verlassen.<br />

Die bedingten Anweisungen in der Methode actionPerformed() untersuchen also,<br />

welcher Button in der graphischen Benutzeroberfläche aktiviert wurde, um dann<br />

entsprechend zu reagieren. Wurde keiner der Buttons gedrückt, geschieht nichts.<br />

Siehe auch: 3.1.2.18<br />

3.1.1.11 Logische Operatoren und arithmetischer Inkrement-/Dekrement-Operator<br />

Dringen wir nun tiefer in die Methode actionPerformed() ein. Wird durch den<br />

Benutzer der Button DONE aktiviert, so werden die Anweisungen<br />

75

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!