Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich bin blutiger Java-Anfänger und möchte folgende selbst gestellte Aufgabe lösen:
Es sollen die y-Werte der Funktion y=2*x für die ersten 5 Integer-Werte von x augerechnet werden und in ein Array eingelesen werden.
Also in dem Array sollen die Werte 0, 2, 4, 6 und 8 stehen.
Als Beispiel soll array (3) ausgegeben werden, sollte also 4 betragen.
Der ausgegebene y-Wert sollte bei Erfüllung der Abbruchbedingung eigentlich 10 betragen.
Ich habe schon einiges ausprobiert, doch es will nicht klappen. Möglicherweise enthält mein Code mehrere Anfänger-Fehler. Doch ich bin durch Literaturstudium leider nicht weiter gekommen.
Wäre nett, wenn mir jemand auf die Sprünge helfen könnte.
Code:
class y2x
{
public static void main(String args[])
{
int y;/*Ordinate*/
int x;/*Abszisse*/
x=0; //Start-Wert von x wurde vorgegeben
int[] array = new int[10];
y=0;
{
for ( int i=0; i<=5; i++ )
array[i] = y;
x = x+1;
y=2*x;
}
System.out.println(" Wert des Arrays:"+array[3]);
System.out.println(" y-Wert:"+y);
}
}
Du meinst, ich soll Deinen Code folgendermaßen integrieren?
Das produziert errors:
y2x.java:13: <identifier> expected
System.out.println(" Wert des Arrays für x=3:"+array[3]);
Code:
class y2x
{
public static void main(String args[])
{
int y;/*Ordinate*/
int x;/*Abszisse*/
x=0; //Start-Wert von x wurde vorgegeben
int[] array = new int[5];
for (int x=0; x<=5; x++)
array[x] = 2*x;
}
System.out.println(" Wert des Arrays für x=3:"+array[3]);
}
}
du hast die klammer falsch gesetzt, dadurch wurde die schleife zwar aufgeführt aber nichts verändert.
Code:
class y2x
{
public static void main(String args[])
{
int y;/*Ordinate*/
int x;/*Abszisse*/
x=0; //Start-Wert von x wurde vorgegeben
int[] array = new int[10];
y=0;
// { diese Klammer ist falsch
for ( int i=0; i<=5; i++ )
{ // die kommt hierher ;-)
array[i] = y;
x = x+1;
y=2*x;
}
System.out.println(" Wert des Arrays:"+array[3]);
System.out.println(" y-Wert:"+y);
}
}
Natürlich hatte "Gast" auch schon die richtige Lösung.
Die "for-Schleife" ist mir noch nicht ganz klar. Bis wohin arbeitet die?
Offenbar wird nur der nächste Klammerinhalt abgearbeitet, falls mehrere Klammerinhalte folgen sollten.
Die for-Schleife rotiert solange die Bediengung x<=5 stimmt. Also macht sie 5 Durchläufe. So ist die Kurze version von Landei um einiges besser als deine.
for ( int x=0; x<=5; x++ )
{ // <--- diese Klammer markiert den Anfang der For-Schleife
array[x] = 2*x;
System.out.println("H");
System.out.println("A");
System.out.println("L");
System.out.println("L");
System.out.println("O");
for(int i=0;i<4;i++)
{
System.out.println(i+". Durchlauf der inneren for-Schleife");
}
// innerhalb der zwei Klammern der for-Schleife kann quasi alles mögliche stehen,
// zum Beispiel if-Selektionen, while-Schleifen, weitere for-Schleifen,
// for-each-Schleifen usw.
System.out.println(x+". Durchlauf der for-Schleife"); // hier erfolgt auch ein Zugriff auf
// den Zähler x der äußeren
// For-Schleife
} // <--- diese Klammer markiert das Ende der For-Schleife, der ganze Inhalt
// wird so oft wiederholt, bis die Abbruchbedinung greift
Vielen Dank für Deine vorbildliche Hilfe mit dem klärenden Beispiel!
Habe das listing genau durchgearbeitet. Es lief in "Landei"-listig fehlerfrei, wenn man die Größe des Arrays von 5 auf 6 erhöht.
Schlußfolgerung:
Bei einer for-Schleife wird also der Inhalt des folgenden geschweiften Klammerpaars abgearbeitet. Diese Klammern repräsentieren Anfang und Ende der Schleife.
Innerhalb des Klammerpaares können weitere Klammerpaare mit weiteren (inneren) Schleifen stehen.
es rotiert das mit was in der geschleiften klammer ist ... wichtig vielleicht noch bei einer forschleife ist es wird immer am ende der for schleife die variable erhöht...
Die for-Schleife rotiert solange die Bediengung x<=5 stimmt. Also macht sie 5 Durchläufe. So ist die Kurze version von Landei um einiges besser als deine.