11. Programmablauf
11. ProgrammablaufGegeben sei das folgende Programm:
package s1.block3; public class AufgabeSwitchCase { static short k; public static void main(String[] args) { short i, k; short imax = 10; for (i = 1; i < imax; i++) { for (k = 1; k < imax; k++) { if ((k == i) || (k == (imax - i))) { System.out.print("*"); } else { System.out.print(" "); // ein Leerzeichen } } // for k switch (i) { case 1: case 2: case 3: case 4: System.out.print("LINKS"); break; case 6: case 7: case 8: case 9: System.out.print("RECHTS"); break; default: System.out.print("MITTE"); } // switch System.out.println(); //Neue Zeile } // for i } // main }
- Markieren Sie alle Schlüsselwörter
- Arbeiten Sie jetzt das Programm ab und tragen Sie die Konsolenausgaben von oben nach unten auf ein (kariertes) Blatt Papier ein.
Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)
Niveau | 1 |
Schwierigkeitsgrad | mittel |
Zeit | 8+3 Minuten |
Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)
Antwort zu 10: Codetransformation
public class CodeTrans1 { public static void main(String[] args) { int b = 3; System.out.println("Erster Durchlauf"); System.out.println("Vorgabe:"); doWhile(b); System.out.println("nurWhile():"); nurWhile(b); System.out.println("forSchleife():"); forSchleife(b); // Zweite Testrunde System.out.println("Zweiter Durchlauf"); b = 0; System.out.println("Vorgabe:"); doWhile(b); System.out.println("nurWhile():"); nurWhile(b); System.out.println("forSchleife():"); forSchleife(b); } /** * Die Vorgabe der Aufgabe * @param b */ public static void doWhile(int b) { int i = 0; String s; if (b >= 0) { // b ist immer gößer Null! do { int k = i * 5; s = (i % 2 == 0) ? "gerade" : "ungerade"; System.out.println("start():" + k + " ist " + s); i++; // Schleifeninkrement } while (i < b); } } public static void nurWhile(int b) { int i = 0; String s; if (b >= 0) { // b ist immer gößer Null! int k = i * 5; s = (i % 2 == 0) ? "gerade" : "ungerade"; System.out.println("start():" + k + " ist " + s); i++; // Schleifeninkrement while (i < b) { k = i * 5; s = (i % 2 == 0) ? "gerade" : "ungerade"; System.out.println("start():" + k + " ist " + s); i++; // Schleifeninkrement } } } public static void forSchleife(int b) { int i = 0; String s; if (b >= 0) { // b ist immer gößer Null! int k = i * 5; s = (i % 2 == 0) ? "gerade" : "ungerade"; System.out.println("start():" + k + " ist " + s); for (i = 1; i < b; i++) { k = i * 5; s = (i % 2 == 0) ? "gerade" : "ungerade"; System.out.println("start():" + k + " ist " + s); } } } }
Ergibt die folgende Ausgabe:
Erster Durchlauf Vorgabe: start():0 ist gerade start():5 ist ungerade start():10 ist gerade nurWhile(): start():0 ist gerade start():5 ist ungerade start():10 ist gerade forSchleife(): start():0 ist gerade start():5 ist ungerade start():10 ist gerade Zweiter Durchlauf Vorgabe: start():0 ist gerade nurWhile(): start():0 ist gerade forSchleife(): start():0 ist gerade
- 3944 views
Typkonversion
Ist es gewollt, dass in der Antwort zu 1.66 bei der letzten Typkonversion weder ein Downcast, noch "//sichere Typkonversion" steht?
Typkonversion
Dies würde mich auch einmal interessieren!
Na denn...
Das ist ein sicherer Upcast.