Ungerade Zahlen ausgeben von 1 bis 1000

HWS_Jung

Mitglied
Hallo, ich bin erst ins Thema Java eingestiegen und habe ein Problem, ich soll ein Programm schreiben bei welchem man eine Zahl eingibt von 1 bis 1000 und das Programm soll dir alle ungeraden Zahlen ausgeben bis zu der Zahl die man per Scanner eingibt.

import java.util.Scanner;


public class JavaApplication9 {


public static void main(String[] args) {

Scanner s = new Scanner(System.in);
int zahl = s.nextInt();


for (int i =0; i<=1000; ++i){
if (i%2 !=0){
System.out.print(i + ",");

}
}

}


}

Das ist mein bisheriger Code und er gibt auch schon alle ungeraden Zahlen aus, das einzige was fehlt ist, dass er an der eingegebenen Zahl stoppt.
Ich bin der Annahme, dass ich es in eine Schleife einbauen müsste die dann irgendwann einen break erzeugt, leider weiß ich nicht wie das geht und habe auch schon etwas nachgeforscht aber bin auf nichts hiflreiches gestoßen.

Danke im Vorraus für eure Hilfe 🙂
 
Jetzt habe ich leider immernoch das Probelm, dass er über 1000 zählt, habe jetzt das hinzugefügt aber es scheint nichts zu bewirken:

import java.util.Scanner;


public class JavaApplication9 {


public static void main(String[] args) {

Scanner s = new Scanner(System.in);
int zahl = s.nextInt();


for (int i =0; i<=zahl; ++i){
if (i%2 !=0){
System.out.print(i + ",");
if (zahl > 1000){
break;
}
}

}

}


}
 
Wobei das auch eine typische Aufgabe ist, die zeigt, dass es Sinn macht, etwas über die Anforderung nachzudenken.

Ungerade zahlen sind ab 1 immer +2. Also 1, 3, 5, 7, ...
Also Anforderung erst verstehen und dann umsetzen. Da braucht man kein Modulo oder sonst irgendwas an Komplexität:
Code:
for (int i=1; i<=zahl; i+=2){
  System.out.print(i + ",");
}
 
Jetzt habe ich leider immernoch das Probelm, dass er über 1000 zählt, habe jetzt das hinzugefügt aber es scheint nichts zu bewirken:

import java.util.Scanner;


public class JavaApplication9 {


public static void main(String[] args) {

Scanner s = new Scanner(System.in);
int zahl = s.nextInt();


for (int i =0; i<=zahl; ++i){
if (i%2 !=0){
System.out.print(i + ",");
if (zahl > 1000){
break;
}
}

}

}


}

Der Code funktionert bei mir...falls Du es schon gelöst hast: Lass andere daran teilhaben! Ansonsten wäre mein Tipp:
- hast Du korrekt gespeichert?
- läuft das richtige Projekt?
- die Klammern sehen gut aus, dennoch: gibt deine IDE eine Fehlermeldung?

und tatsächlich...mit Formatierung und Code-Block sehen Dinge oft besser aus. 😉
Java:
package ungerade;

import java.util.Scanner;

public class UngeradeGerade {

    public static boolean run = true;

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        while (run == true) {

            System.out.println("Bitte eine Zahl zwischen 1 und 1000 eingeben!");
            Scanner s = new Scanner(System.in);
            int zahl = s.nextInt();

            if (zahl <= 1 || zahl > 1000) {
                System.out.println("Das war keine Zahl zwischen 1 und 1000!");
                System.out.println("Bitte nochmal!");
            } else {

                for (int i = 0; i <= zahl; i++) {
                    if (i % 2 != 0) {
                        System.out.print(i + ",");
                    }
                }
                run = false;

            }

        }
    }
}

Schöne Grüße
Tom
 

Zurück
Oben