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.
EclipseEclipse-Concole: Ergebnis-Zahlenfolge erscheint kurz und verschwindet dann wieder
In dem Programm "Collatzfolge" erscheint Ergebnis-Zahlenfolge kurz in Console von Eclipse und verschwindet dann wieder.
Was mache ich falsch?
---
Java:
/* Collatzfolge
* Nach der Eingabe einer Startzahl (ganze Zahl)
* wird die zugehörige Collatzfolge bis zur
* ersten 1 ausgegeben.
* @author Hans-Peter Habelitz
* @date 2019-08-09
*/
import javax.swing.JOptionPane;
public class Collatzfolge {
public static void main(String[] args) {
// Eingabedialog anzeigen
var eingabe = JOptionPane
.showInputDialog("Geben Sie die Startzahl für die Collatzfolge ein: ");
var n = Integer.parseInt(eingabe);
System.out.print(n);
do {
if (n % 2 == 0)
n /= 2;
else
n = 3 * n + 1;
System.out.print(", " + n);
} while (n != 1);
}
}
Funktioniert bei mir. Bist du dir sicher dass die "Ausgabe verschwindet" und nicht die Konsole von dem Programm einfach vernichtet wird? Also dass Eclipse die Konsole wegwirft weil das Programm fertig ist, oder das auf eine anderen Konsole gewechselt wird aus irgendeinem Grund?
Funktioniert bei mir. Bist du dir sicher dass die "Ausgabe verschwindet" und nicht die Konsole von dem Programm einfach vernichtet wird? Also dass Eclipse die Konsole wegwirft weil das Programm fertig ist, oder das auf eine anderen Konsole gewechselt wird aus irgendeinem Grund?
In der Console unter dem Quellcode erscheint die richtige Lösung und verschwindet nach ca. 2 Sekunden. Die Console ist nach wie vor vorhanden und erscheint mir unverändert.
Nebenbeobachtung: Nach mehreren Versuchen mit diesem Programm arbeitet das Programm immer langsamer. Nach einen Neustart des Computers ist wieder alles normal.
Nein, du siehst gerade nur die Auswirkungen von irgendetwas anderem, aber von was kann ich dir nicht sagen. Vielleicht liefen im Hintergrund von Eclipse noch andere, "alte" Prozesse oder aehnliches, oder der Prozess konnte nicht richtig beendet werden, oder irgendwas anderes an deinem System war gerade komisch.
Bei mir funktioniert das Programm auch normal. Wie startest du die Klasse? Gibt es in deinem Workspace noch viele andere Projekte oder Klassen? Ich kann mich erinnern, dass ich auch schonmal das Problem hatte, das in Eclipse unerwartete Sachen passiert sind, weil ich irgendwelche komischen Konstellationen von Projekten im Workspace hatte, die sich gegenseitig beeinflusst haben.
Probier mal aus, alle Run Configurations zu entfernen und dann die Klasse nochmal mit einem Rechtsklick und Run zu starten. Wenn das nicht hilft, dann würde ich einfach mal einen neuen Workspace aufsetzen und schauen, ob es da geht.
Das Programm scheint richtig formuliert zu sein. (Bis auf die unschönen var warum nicht gleich String und int).
Die Frage die sich stellt, ist ob die Folge bei jeder Startzahl überhaupt terminiert oder erst nach sehr langer Zeit.
"In jeglicher Hinsicht" ist ein tolles Argument, das überzeugt sofort.
Und wenn man Code mal nicht in der IDE anzeigt oder diese den Typ gerade mal nicht anzeigt? Und gerade wenn Methoden aufgerufen werden, ist es eben nicht direkt sichtbar. Und wir hatten auch schon mal den Punkt, dass man ggf. im Code auch explizit ein Interface haben möchte?
Also für "in jeder Hinsicht" scheint mir das schon einiges an Punkten zu sein ....
Und was ist der Vorteil Deiner Meinung nach? Was gewinnst Du? Ich sehe ehrlich gesagt nicht wirklich einen Gewinn.
/* Collatzfolge von Norbert S.121
*/
Nach einem Neustart funktionierte das Programm oben, das ich aus meinem Übungsbuch abgeschrieben habe, wunderbar auch mit sehr großen Zahlen.
Als ich dann meinen Programmierversuch (siehe unten) startete, funktionierte es einmal korrekt und dann tauchte wieder der beschrieben Fehler auf. Auch bei dem Orginal-Programm!
Die Ursache ist jetzt klar.
Was aber verursacht an meinem Programm unten diesen Fehler?
import javax.swing.JOptionPane;
public class CollatzfolgeNN {
public static void main(String[] args) {
int y = 0;
var x = Integer.parseInt(JOptionPane.showInputDialog("Geben Sie eine Zahl ein: "));
while (x != 1) {
y = x % 2;
if (y == 0)
x = 3 * x + 1;
else
x = x / 2;
System.out.print(x + ", ");
}
System.out.print(" ");
}
}
Du weißt, ich bin Amfänger.
In Eclipse steht bei mir links das Inhaltsverzeichnis, rechts oben und Mitte das Feld zum Eingeben des Programms und darunter die Console. Ich weiß nichts von mehreren Consolen und will die zurzeit auch nicht haben.
Ich starte das Programm immer mit dem Klick auf das Run-Symbol (weißer Pfeil nach rechst im dunklen Kreis) auf der Symbol-Zeile.
Von meiner "Run Configuration" hier ein Screenshot.
Meine Ecplipse-Version: 2021-09(4.21.0)
Und hier ein Screenshot von meiner "Debug Configuration"
So voll, wie der Workspace ist, kann ich mir vorstellen, dass da einfach beim Start irgendwas durcheinander kommt. Du hast da ja anscheinend schon total viele verschiedene Klassen und Projekte drin, teilweise sogar mit Buildfehlern. Genauso ist die Liste mit Run Configurations ja schon ewig lang.
Ich hatte wie gesagt auch schonmal Schwierigkeiten in Eclipse, wenn ich zu viele verschiedene Sachen auf einmal gemacht habe. Du könntest mal probieren, alle Run Configurations zu löschen und dann nochmal deine Klasse mit Run As Java Application zu starten. Um die zu löschen markierst du in dem "Run Configurations" Links in der Liste alle Klassen, die bei "Java Appliction" stehen, drückst dann Entf und klickst Delete. Dann ist das schonmal wieder aufgeräumt.
Eventuell kann es auch helfen, wenn du die Projekte, die du gerade nicht benötigst, zu machst. Das kannst du mit einem Rechtsklick im "Project Explorer" auf zum Beispiel "JannisYoutube" und anschließend "Close Project" machen.
Ansonsten würde ich einfach mal einen sauberen neuen Workspace aufsetzen und damit weiterarbeiten.
Deine Anregung zur Entmüllung habe ich durchgeführt, da du sie sehr gut erklärt hast. Es ist wahrscheinlich wichtig,das alle paar Wochen zu machen. Der Fehler tritt immer noch auf. Damit werde ich jetzt aber leben.
Eclipse mag ein gutes Werkzeug sein, ist für Anfänger aber auch ein hartes Brett.
für "fortgeschrittene" hast du halt eine große auswahl aber jedes tool das du dir aussuchen wirst muss halt auch so benutzt werden wie es gedacht ist.. bei java wären es zb ordner machen für packages... source code und compilierten code trennen ( keine ahnung wie du es geschafft hast beides in einen ordner zu kriegen )