U
Unregistriert
Gast
Hallo ihr Javaisten!
Ich komme aus dem Bereich des PHP und wollte man einen Einblick in die Welt des Java gewinnen Nun habe ich mir dir Collatz-Funktion vorgeknöpft, komme aber nicht wirklich weiter. Mein Code sieht so aus:
Das Problem besteht an der inneren Iteration. Grundsätzlich soll er einen Bereich abfragen (y = min; x = max). Das heißt, man kann 1;10 eingeben und dann soll die Collatz-Funktion für alle Zahlen im Bereich von 1-10 abgearbeitet werden.
Problem: Script bleibt bei Zahl 2 stehen und gibt lauter "Aktuelle Zahl:2" und "Iteration(1) = 0" aus. Es ist mir auch dann klar, dass er diese While Bedingung niemals lösen kann, deshalb kommen auch die vorher genannten Begriffe ständig. Aber wie macht man das richtig? Darf man in Java nicht 2 Schleifen verschachteln??
Grüße!
Ich komme aus dem Bereich des PHP und wollte man einen Einblick in die Welt des Java gewinnen Nun habe ich mir dir Collatz-Funktion vorgeknöpft, komme aber nicht wirklich weiter. Mein Code sieht so aus:
Java:
import AlgoTools.IO;
public class Collatz
{
public static void main(String [] argv)
{
int x,y,z,i;
y = IO.readInt("Von: ");
x = IO.readInt("Bis: ");
z = 0;
for (i = y; i <= x; i++)
{
IO.println("--------------------");
IO.println("Aktuelle Zahl: " + i);
while (i != 1)
{
if (i % 2 == 0)
{
i = i / 2;
}
else
{
i = 3*i+1;
z = z+1;
}
IO.println("Iteration(" + i + ") = " + z);
continue;
}
}
}
}
Das Problem besteht an der inneren Iteration. Grundsätzlich soll er einen Bereich abfragen (y = min; x = max). Das heißt, man kann 1;10 eingeben und dann soll die Collatz-Funktion für alle Zahlen im Bereich von 1-10 abgearbeitet werden.
Problem: Script bleibt bei Zahl 2 stehen und gibt lauter "Aktuelle Zahl:2" und "Iteration(1) = 0" aus. Es ist mir auch dann klar, dass er diese While Bedingung niemals lösen kann, deshalb kommen auch die vorher genannten Begriffe ständig. Aber wie macht man das richtig? Darf man in Java nicht 2 Schleifen verschachteln??
Grüße!