Primzahlen bis 100 addieren

Binibi

Mitglied
Hallo!

Ich möchte gerne programmieren lernen, daher hab ich mir das Buch "Programmieren lernen für Dummies" geholt. Leider scheitere ich schon in Kapitel 11 bei der Aufgabe alle Primzahlen von 2 bis 100 zu addieren.

In der 1. If-Bedingung setzt er den Wert auf false, wenn er falsch ist, bzw. auf true, wenn er richtig ist. Das passt. Aber sobald er in die 2. if-Bedingung rein geht, setzt er das automatisch auf true. Warum?

1634153760381.png

Kann mir wer auf die Sprünge helfen?
 

mrBrown

Super-Moderator
Mitarbeiter
Code bitte immer als Text in Code-Tags, nicht als Bild ;)


Deine Bedingung ist isPrimzahl = true, und = ist eine Zuweisung, isPrimzahl wird also true zugewiesen.

Vergleiche mit true oder false sind generell überflüssig, und du kannst in dem Fall einfach if(isPrimzahl) schreiben.
 

Binibi

Mitglied
Code bitte immer als Text in Code-Tags, nicht als Bild ;)
Mach ich das nächste Mal!
Deine Bedingung ist isPrimzahl = true, und = ist eine Zuweisung, isPrimzahl wird also true zugewiesen.

Vergleiche mit true oder false sind generell überflüssig, und du kannst in dem Fall einfach if(isPrimzahl) schreiben.
Das erklärt schon mal, warum es da immer wieder auf true gesetzt wird.
Aber wenn ich if(isPrimzahl) schreibe, dann rechnet er nur die ersten beiden Primzahlen zusammen und danach keine mehr..
 

Studi21

Mitglied
Mach es mal So :)

Java:
  public static void main(String[] args) {
        
        int i, j;
        boolean isPrime;
        isPrime = true;
        for (i = 2; i < 100; i++) {
            for (j = 3; j < i - 1; j++) {
                
                if ((i % j) == 0) {

                    isPrime = false;
                }
            }
            if (isPrime == true) {
                System.out.println(i + " nächste Primzahl ");
            } else {
                isPrime = true;
            
            }
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:

mrBrown

Super-Moderator
Mitarbeiter

Studi21

Mitglied
Mach es mal So :)

public static void main(String[] args) {

int i, j;
boolean isPrime;
isPrime = true;
for (i = 2; i < 100; i++) {
for (j = 3; j < i - 1; j++) {

if ((i % j) == 0) {

isPrime = false;
}
}
if (isPrime == true) {
System.out.println(i + " nächste Primzahl ");
} else {
isPrime = true;

}

Fertiger Code ist hier nicht gern gesehen ;)



Wenn eine Zahl keine Primzahl ist, wird isPrimzahl ja auf false gesetzte – wird es bei der nächsten Primzahl denn wieder auf true gesetzt?
Er war ja auch noch nicht fertig ;) damit kann man sich lediglich die Primzahlen bis n ausgeben. Für das Addieren muss man noch extra etwas einbauen.
 

kneitzel

Top Contributor
Das Problem war, dass Du die Variable isPrimzahl nur bei der Deklaration auf true gesetzt hast. Damit wird die einmal auf false gesetzt und dann nie wieder erneut gesetzt. Sprich: Die Variable kannst Du einfach in die äußere for Schleife stecken.
 

mrBrown

Super-Moderator
Mitarbeiter
Der schönere Weg wäre dabei, den Scope für isPrimzahl passender zu wählen. Aktuell "existiert" für alle Primzahlen zusammen, eigentlich ist sie ja aber nur für eine einzelne gedacht -> die Variable in der for-schleife deklarieren und das Problem löst sich auch :)
 

mrBrown

Super-Moderator
Mitarbeiter
Warum eigentlich? Muss ich anstatt 5 Zeilen Code erst zwei Seiten Prosa schreiben? Welchen Sinn hat das? Auch im Hinblick auf Stackoverflow...
Weil an fertigem Code niemand etwas lernt (wie man hier wieder sieht), der fertige Code oft schlecht ist (wie man hier wieder sieht) und sinnvolle Hilfe damit auch oftmals schwieriger wird (wie man hier z.T. sieht).

Ein Forum lässt sich nicht mit Stackoverflow vergleichen, das sind völlig unterschiedliche Konzepte.


Er war ja auch noch nicht fertig ;) damit kann man sich lediglich die Primzahlen bis n ausgeben. Für das Addieren muss man noch extra etwas einbauen.
Gilt gleichermaßen für (den meisten) fast-fertigen Code :)
 

NullCharm

Aktives Mitglied
Weil an fertigem Code niemand etwas lernt (wie man hier wieder sieht), der fertige Code oft schlecht ist
Man kann da durchaus geteilter Meinung sein. Angeblich schlechter Code korrigiert sich idR von selbst, insofern solche Antworten von der Moderation nicht systematisch unterdrückt werden. Vielleicht scheut sich die Moderation auch davor, gute von schlechten Antworten zu unterscheiden. In jedem schlummert ja ein Genie, stimmt's? :)
 

Binibi

Mitglied
Hmm, wo hast du das wie eingebaut? Das hört sich etwas dubios an :)
Bei der 2. If-Bedingung.
If (isPrimzahl)
{ Zahl += i ;}
Else
{ isPrimzahl = true; }

Macht ja Sinn, wenn man so darüber nachdenkt. Ich dachte, wenn ich das oben deklariere, dass er das dann bei erneuter Ausführung der Schleife wieder berücksichtigt, aber klar , woher auch. Wieder was gelernt.
Ansonsten ist mir noch aufgefallen, dass du da im Bildschirmfoto bei if (isPrimzahl = true) nur ein = hast oder täuscht das?
Ja, bei == hat er nur bis zum ersten false gerechnet, da dachte ich, dass es vielleicht = sein muss. Aber jetzt weiß ich es besser!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Primzahlen finden - Zeit optimieren Java Basics - Anfänger-Themen 34
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
fendix Compiler-Fehler Algorithmus zur Bestimmung von Primzahlen Java Basics - Anfänger-Themen 7
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
G Primzahlen von Rekursiv nach Iterativ Java Basics - Anfänger-Themen 6
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
Java The Hutt Primzahlen - die ersten 100 Java Basics - Anfänger-Themen 17
N Erste Schritte Primzahlen-ArrayIndexOutOfBounds Java Basics - Anfänger-Themen 23
R Primzahlen Zähler Programm / Benachbarte Primzahlen Java Basics - Anfänger-Themen 30
D Klassen Primzahlen überprüfen Java Basics - Anfänger-Themen 3
I Primzahlen Java Basics - Anfänger-Themen 17
Z Rekursion Primzahlen Java Basics - Anfänger-Themen 1
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
R primzahlen im array Java Basics - Anfänger-Themen 33
M Primzahlen, nur jede 2te ausgeben Java Basics - Anfänger-Themen 11
T Primzahlen Fehler Java Basics - Anfänger-Themen 4
K Primzahlen Java Basics - Anfänger-Themen 6
L Primzahlen im Array ausgeben Java Basics - Anfänger-Themen 3
P Primzahlen Java Basics - Anfänger-Themen 3
A Methoden Primzahlen erstellen von 1 bis 100-Codeprobleme Java Basics - Anfänger-Themen 2
H Variablenverfolgung - Primzahlen Java Basics - Anfänger-Themen 7
G Primzahlen Java Basics - Anfänger-Themen 6
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
S Primzahlen bis 1000 ausgeben Java Basics - Anfänger-Themen 3
K Methoden Primzahlen Java Basics - Anfänger-Themen 33
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
F Primzahlen in Zahlenblöcken ausgeben Java Basics - Anfänger-Themen 9
M Primzahlen - es werden alle Nicht-Primzahlen ausgegeben Java Basics - Anfänger-Themen 5
M primzahlen Java Basics - Anfänger-Themen 4
S Programm zu Ermittlung von Primzahlen Java Basics - Anfänger-Themen 14
E Programm zum Primzahlen ausgeben-Fehler Java Basics - Anfänger-Themen 12
X Primzahlen Java Basics - Anfänger-Themen 7
S Primzahlen Java Basics - Anfänger-Themen 12
B Programmierobjekt - Primzahlen Java Basics - Anfänger-Themen 2
D Primzahlen ausgeben. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
N Primzahlen Java Basics - Anfänger-Themen 5
I Primzahlen check, String prüfen lassen. Java Basics - Anfänger-Themen 6
A OOP Programm zum bestimmen von Primzahlen, OutofBoundsException Java Basics - Anfänger-Themen 10
apple987123 Primzahlen Java Basics - Anfänger-Themen 12
A Primzahlen: ein paar offene Fragen Java Basics - Anfänger-Themen 2
T Primzahlen Java Basics - Anfänger-Themen 6
G Primzahlen Java Basics - Anfänger-Themen 18
B Primzahlen berechnen - Wieso unterschiedliche Java Basics - Anfänger-Themen 3
B Primzahlen Algorithmus - wo ist der Fehler ? Java Basics - Anfänger-Themen 2
E Primzahlen Java Basics - Anfänger-Themen 5
B Primzahlen mit Array errechnen! Java Basics - Anfänger-Themen 13
H Miller Rabin Test Primzahlen werden teilweise nicht gefunden Java Basics - Anfänger-Themen 5
M Wer kann mir bei Primzahlen helfen ? Java Basics - Anfänger-Themen 4
G Frage zur Primzahlen berechnung Java Basics - Anfänger-Themen 11
kulturfenster Primzahlen berechnen Java Basics - Anfänger-Themen 11
D Primzahlen Java Basics - Anfänger-Themen 4
N Zerlegung in Primzahlen Java Basics - Anfänger-Themen 7
F Programm Primzahlen Java Basics - Anfänger-Themen 5
J Primzahlen errechnen.ArrayLists abgleichen Java Basics - Anfänger-Themen 2
M Primzahlen Java Basics - Anfänger-Themen 6
C Primzahlen Java Basics - Anfänger-Themen 7
C Primzahlen Java Basics - Anfänger-Themen 2
S Primzahlen Java Basics - Anfänger-Themen 49
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
S Arraywerte quadrieren und danach addieren Java Basics - Anfänger-Themen 11
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
G Array Werte addieren Java Basics - Anfänger-Themen 4
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
parrot Binär Addieren Java Basics - Anfänger-Themen 21
K Subklassen mit einzigem Befehl addieren Java Basics - Anfänger-Themen 6
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
M Addieren von Polynomen Java Java Basics - Anfänger-Themen 22
M Werte des Arrays addieren Java Basics - Anfänger-Themen 5
W Parameter solange addieren bis 13 auftaucht Java Basics - Anfänger-Themen 11
E Mehrere Arrays addieren mit Übertrag Java Basics - Anfänger-Themen 13
G OOP- Brüche addieren Java Basics - Anfänger-Themen 3
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
J Zahlen addieren Java Basics - Anfänger-Themen 12
S Zahlenstrings addieren Java Basics - Anfänger-Themen 6
x-tshainge Innerhalb von Textdatei addieren Java Basics - Anfänger-Themen 9
A Arrays addieren- Was mache ich falsch?? Java Basics - Anfänger-Themen 2
ArkHeat Erste Schritte Zwei 2-dimensionale Matritzen addieren Java Basics - Anfänger-Themen 0
reza_4247 addieren Nummern Java Basics - Anfänger-Themen 7
R Werte aus Array addieren und Mittelwert bilden Java Basics - Anfänger-Themen 2
Viktormk Methoden Gleitpunktzahlen nach IEEE 754 addieren ! Java Basics - Anfänger-Themen 1
J Arrays erstellen und dann addieren Java Basics - Anfänger-Themen 19
S int addieren geht nicht Java Basics - Anfänger-Themen 13
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
M Werte der Knoten in Binärbaum addieren (iterativ) Java Basics - Anfänger-Themen 6
I Werte zu existierendem int addieren Java Basics - Anfänger-Themen 4
Silvascus Erste Schritte Werte innerhalb eines Arrays addieren Java Basics - Anfänger-Themen 3
C Java Eingabeaufforderung-Basic Zwei Zahlen addieren Java Basics - Anfänger-Themen 2
S ArrayList Gruppieren, "Doppelte Werte" Addieren Java Basics - Anfänger-Themen 5
M Arrays addieren Java Basics - Anfänger-Themen 2
C Rekursion auf einem Array(negative werte addieren) Java Basics - Anfänger-Themen 4
V addieren der ausgabewerte Java Basics - Anfänger-Themen 6
C OOP Probleme beim Addieren von Arrays Java Basics - Anfänger-Themen 4
B Vektor addieren Java Basics - Anfänger-Themen 4
G Summen addieren und Durchschnitt bilden Java Basics - Anfänger-Themen 4
A Erste Schritte aufeinanderfolgende Zahlen addieren Java Basics - Anfänger-Themen 5

Ähnliche Java Themen


Oben