For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt

OZAN86

Mitglied
[CODE lang="java" title="for schleife 1-50"]

public static void main(String[] args) {
int i;
for (i = 1; i <= 50; ++i)
System.out.print(i+",");
}
}[/CODE]

meine Herausforderung ist es das letzte Komma Zeichen nach der 50 zu löschen, ich komme nicht auf die Lösung.
Ich vermute das es sehr simpel ist aber ich komme nicht darauf.
Habt ihr vielleicht einen Tipp?
 
Kannst du denn eine Bedingung nennen, wann das Komma geschrieben werden soll und wann nicht?

Und dann kannst du das mit if in den Code einbauen...
 
zurzeit ist es nur im print das Komma, ich werde es versuchen mit in die for Schleife zu schreiben.
Ja, das ist schon ein guter Ansatz. Dann musst Du aber immer noch überlegen, wann das "," ausgegeben werden muss und wann nicht.

Die Idee von @drier führt auch zu einem validen Ergebnis, aber hilft Dir natürlich nicht weiter, wenn es darum geht, Code mit entsprechenden Bedingungen zu schreiben. Das halte ich für eine wichtige Übung. und genau das könnte so im Anfangsbereich sein, was Ihr üben sollt (Vermutung, ohne die genaue Aufgabe und deren Kontext zu kennen. Aber auf Grund der Frage halte ich es für empfohlen, dass du Dich mit dem Bereich auseinander setzt) ...
 
So kannst du es programmieren:
Java:
    public static void main(String[] args) {
        int i;
        for (i = 1; i <= 50; ++i) {
            System.out.print(i);
            if (i < 50) {
                System.out.print(",");
            }
        }
    }

Ausgabe:
Code:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50
 
Angenommen, du hast eine Liste

Java:
        List<String> list = new ArrayList<>();
        int i;
        for (i = 1; i <= 50; ++i) {
            list.add("" + i);
        }

Dann geht das auch in einer einzelnen Zeile:
Java:
        System.out.print(String.join(",", list));
 
Wenn du nach dieser fertigen Lösung eine weitere Übung haben willst, dann kannst du Dir ja überlegen, wie Du es schreiben könntest, wenn Du nicht weisst, wann Ende ist...

Also als Erweiterung sähe der Code erst einmal so aus:
Java:
public static boolean check(int i) {
    return i<50;
}

public static void main(String[] args) {
        int i;
        for (i = 1; check(i); ++i)
        System.out.print(i+",");
        }
}

wobei die 50 in check jederzeit geändert werden könnte, so dass diese nicht als Konstante benutzt werden kann.

Um eine Relevanz für den Bereich der Software-Entwicklung herzustellen einfach einen Beispiel, bei dem das vorkommen kann: ResultSet bei einer Datenbankabfrage sieht oft in etwa so aus:
Java:
while (resultSet.next()) {
    System.err.println(resultSet.getString("columnName"));
}

Daher könntest Du Dir da überlegen, ob Du hier eine Idee zur Lösung hast.

Und erneut: Immer ein Modell überlegen. Eine mögliche Vorstellung könnte jetzt sein:
Du hast Stift und Zettel und sollst Zahlen aufschreiben. Jemand anderes sagt Dir Zahlen. Irgendwann sagt er "fertig" und es ist vorbei. Und du sollst Zahlen mit Komma getrennt aufschreiben und Du kannst nichts löschen!
Kriegst Du das hin? Wenn ja: wie? Wenn Du das in diesem Modell im Detail überlegt hast, dann sollte es auch einfach umzusetzen sein.
 

Zurück
Oben