Gibt es eine Art "Grenze" von Java, wenn du viele ineinander verschachtelte Schleifen durchlaufen werden, bei denen das Programm abstürzt oder wie schnell durchläuft er die (Abhängig von der PC-Leistung)?
Kommt darauf an wie performant du programmierst . Ansonsten hängt es wie überall auch von der Computerausstattung ab. Das einzige was du beachten musst ist, dass Java standardmäßig "nur" 64 MB Arbeitsspeicher zur Verfügung stehen.
Ich mein wenn ich 5 ineinandergeschachtelte Schleifen habe, die je "nur" bis 9 zählen aber auch noch je 2-3 Befehle drin haben - ist das dann zu viel für Java?
Weil mein Programm stürzt andauernd ab und ich weiß nicht warum...
Was für Befehle?
- Primzahlen sortieren?
- Atomkraftwerk über einen Zeitraum von 10 Jahren simulieren?
...
Im Ernst: Der Hinweis auf die O-Notation war schon sinnvoll:
5 ineinander geschachtelte Schleifen die jeweils nur bis 9 zählen,
werden insgesamt immerhin ca. 59000 mal durchlaufen.
Also kein Problem für Java.
Bei 3 verschachtelte Schleifen die bis 1000000 zählen oder
1000000 verschachtelte Schleifen die bis 3 zählen (Viel Spaß beim coden )
sieht das allerdings schon ganz anders aus
Bei 3 verschachtelte Schleifen die bis 1000000 zählen oder
1000000 verschachtelte Schleifen die bis 3 zählen (Viel Spaß beim coden )
sieht das allerdings schon ganz anders aus
Naja dann würf es ja kein Prob sein. Das sind keine komplizierten. Nur Werte aus Textfeldern auslesen, in Arrays speichern und mit Zahlen bzw. anderen Arrays vergleichen und dementsprechend wieder einen neuen Wert ins Array schreiben.
Naja dann würf es ja kein Prob sein. Das sind keine komplizierten. Nur Werte aus Textfeldern auslesen, in Arrays speichern und mit Zahlen bzw. anderen Arrays vergleichen und dementsprechend wieder einen neuen Wert ins Array schreiben.
Habe mal schnell ein kleines Programm programmiert, mitdem ihr euren Rechner auf Schleifentiefe prüfen könnt!
Code:
public class schleife {
static void countdown(int tiefe, boolean ausgabe) {
if (tiefe < 8) { //Hier könnt ihr die Schleifentiefe einstellen!
int i = 9;
while (i >= 0) {
if (ausgabe)
System.out.print(i);
i--;
countdown(tiefe + 1, ausgabe);
}
}
}
public static void main(String[] args) {
System.out.println("Anfang");
long zeit1 = System.currentTimeMillis();
countdown(0, false); //Setzt ihr das auf true, könnt ihr die Ausgabe euch anschauen (damit dauert es deutlich länger)
long zeit2 = System.currentTimeMillis();
System.out.println("Ende");
System.out.println("Das hat " + (zeit2 - zeit1)
+ " Millisekunden gebraucht");
}
}
So wie es hier ist, dauert es bei meinem Rechner 1219 Millisekunden.
- Das sein Rechner 1.219*10(tiefe-8) Sekunden für tiefe-fach verschachtelte Schleifen von 1-9 braucht?
- Das Jobu die Rekursion beherrscht?
- Das heute Freitag ist?
- Das sein Rechner 1.219*10(tiefe-8) Sekunden für tiefe-fach verschachtelte Schleifen von 1-9 braucht?
- Das Jobu die Rekursion beherrscht?
- Das heute Freitag ist?