Java: Verstehe nicht was falsch ist?

 - (Programmieren, Java)

4 Antworten

So einiges ist verwirrend.

  1. Z6: Du übergibst i uninitiiert.
  2. Z6: Du übergibst i,n. In Z9 wird n,i erwartet. Durch diesen Dreher verwirrst du dich selber.
  3. Z9: Es wird gar nicht deutlich, für was die Parameter sind. Für Zweiterpotenzen würde ein Parameter n genügen.
  4. Z10: Deine Zählvariable heißt wie der Parameter = noch mehr Verwirrung.
  5. Z11: In deiner Schleife gibst du mehrfach den Befehl aus, den du durch die Schleife zu einem Ausgabebefehl zusammenfassen könntest. Die Schleife wird also gar nicht zweckdienlich genutzt.
  6. Z11: i erhöht sich in jedem Schritt um 1. Das bedeutet, du gibst nicht die Zweierpotenzen aus, sondern 0, 1, 2, 3... n
  7. Z23: Wobei n dynamisch verändert wird. n wächst schneller als i. Das ist eine Endlosschleife.

Am schlechtesten / verwirrendsten ist die unterschiedliche Verwendung der Variabelnamen.

Versuch, wenn es sich nicht um typische Zählvariablen handelt, sprechendere Namen zu verwenden (Exponent, obereSchranke, was weiß ich...)

0

Die Variable i ist in deiner Methode zweimal deklariert: einmal als Parameter (im Methodenkopf) und dann noch einmal innerhalb der for-Schleife (als Zähler).

Eine von beiden musst du also umbenennen.

Woher ich das weiß:Beruf – Informatiker Applikationsentwicklung in Ausbildung

Du kannst nicht i als Parameter haben und dann noch als Variable für for. Das wäre dann doppelt

nicht nur das ist falsch, die Logik stimmt auch nicht über ein

0
@crafter32

Stimmt, sieht mir glatt nach einem unendlichen loop aus, da i und n sich erhöhen + die ganzen PrintLn

0

Du hast das ein wenig falsch programmiert, so ist es richtig:

void zweierpotenzen(int n){

for(int i=0;i<=n;i++){

System.out.println("2 hoch "+i+" ="+Math.pow(2.0, i));

}

}

ein wenig
0

Ein Hinweis: Der Fragesteller nutzt Processing, nicht Java. Zur Ausgabe wird daher die println-Funktion verwendet, für die Berechnung der Potenz nur pow.

0

Was möchtest Du wissen?