6. Codetransformation (switch-case Bedingung)

6. Codetransformation (switch-case Bedingung)

Die Methode forSchleife(int a) implementiert eine arithmetische Reihe, die für die Eingaben 0 bis 4 die folgenden Ausgaben erzeugt:

Eingabe Ausgabe
0 0
1 1=1
2 3=1+2
3 6=1+2+3
4 10=1+2+3+4

 

public class ArithmetischeReihe {

public static void main(String[] args) {// nur zum Testen
int c;
for (int a = 0; a <= 5; a++) {
   c = forSchleife(a);
   System.out.println(a + ":" + c);
   c = caseVerzweigung(a);
   System.out.println(a + ":" + c);
   } // Ende for
} // Ende Methode main

public static int forSchleife(int a) {//Vorgabe
   int ergebnis = 0;
for (int i = 1; i <= a; i++) {
ergebnis += i;
}
return ergebnis; }

Transformieren Sie die Methode forSchleife(int a) in eine gleichwertige Methode caseVerzeigung(int a) die, die gleichen Ergebnisse mit einer case Verzweigung erzeugt. In der case Verzweigung kann jeweils das Endergebnis aus der Tabelle oben zurückgegeben werden. Nutzen Sie den folgenden Quellcode:

public static int caseVerzweigung(int a) {
int ergebnis = 0;
// Hier Lösung implementieren
return ergebnis;
} // Ende switch } } // Ende der Klasse

Niveau 1
Schwierigkeitsgrad mittel
Zeit 5 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 5: Codetransformation (do-while Schleife)

public static int doWhileSchleife(int a) {
int ergebnis = 0; int i = 1; do { ergebnis += i; i++; } while (i <= a); return ergebnis; }
javafrage Wed, 08/21/2013 - 09:40

Anonymous (not verified)

Sun, 12/20/2015 - 21:14

Was bedeutet ergebnis += i; ich konnte den Operator nicht finden.

Anonymous (not verified)

Wed, 12/14/2016 - 14:42

Guten Tag,

müsste in der Lösung von der Codetransformation das int i = 1 sein und nicht int i = 0 ?
Da die Initialisierung in der Aufgabe in der For Schleide int i = 1 ist?

Mit freundlichen Grüßen!

Das ganze mit 1 loslaufen lassen ist der korrekte Ansatz.
Das Ergebnis eines Starts mit i=0 war korrekt, da eine 0 auf das Ergebnis aufaddiert wurde.
Ich habe die Antwort geändert.

Anonymous (not verified)

Sat, 12/14/2019 - 21:59

Wäre der Sinn der do-while-Schleife nicht mit folgendem Methodenrumpf besser getroffen?:

int ergebnis = 0;
do {
ergebnis += a--;
}while(a>0)
return ergebnis;

Die Variable i wirkt etwas konstruiert um mehr an die vorherige for-Schleife anzulehnen.

Oder ist genau das so gedacht?