6. Codetransformation (switch-case Bedingung)

Submitted by javafrage on Wed, 08/21/2013 - 09:40

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; }

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!

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?