Erklärung der Zeilen 4 und 5

David2456

Aktives Mitglied
Hallo,
ich soll ein Programm schreiben welches prüft ob eine Zahl eine Primzahl ist. Vorgegeben ist ein Programm welches diese Aufgabe Iterative löst, ich soll nun eine rekursiv schreiben, aber habe keine Ahnung was Zeile 4 und 5 bedeutet. Könnte diese mir einer Erläutern?
Danke schonmal

Java:
 public class Primes {

        public static void main(String[] args) {
            for (String arg : args) {
            int x = Integer.parseInt(arg);

            Out.println( x + " is " + (isPrimeIterative(x) ? "" : "not ")
                        + "prime.");
            }
        }

        public static boolean isPrimeIterative(int n) {
            if (n == 2) {
                return true;
            }
           
            if (n % 2 == 0) {
                return false;
            }
           
            for (int i = 3; i * i <= n; i += 2) {
                if (n % i == 0) {
                    return false;
                }
            }
            return true;
        }

    }
 

javampir

Bekanntes Mitglied
nun, was könnte denn parseInt heißen? wenn nicht, dann ist das ein fall für google.
die erste zeile ist eine sonderform der for-schleife. hier durchläufst du einfach alle elemente in args (das sind dann natürlich einzelne strings). in jedem schleifendurchlauf hat arg dann den wert von args[schleifendurchlauf]
 

Jardcore

Top Contributor
Hey David2456,

deine Main Methode liefert dir als Parameter ein Array vom Typ String --> String[] args
Mit deiner Form der for-Schleife (auch foreach-Schleife genannt) wird dann das args Array vom Anfang bis zum Ende durchlaufen. Bei jeder Iteration(Wiederholung) bekommst du dabei den String an der aktuellen Stelle des Arrays zurück.

Äquivalent dazu wäre:
Java:
for(int index = 0; index < args.length; index++) {
    int x = Integer.parseInt(args[index]);
}


Java:
int x = Integer.parseInt(arg)
wandelt einen Zeichenkette (String) in einen Ganzzahlenwert (Integer) um. (Solange der String einen gültigen Integerwert enthält)

Beste Grüße,
Jar
 

David2456

Aktives Mitglied
Danke dir Jardcore. Eine Frage noch. Das Programm funktioniert ja, aber wo wird denn die Zahl eingelesen um zu überprüfen ob es eine Primzahl ist oder nicht?
 

Jardcore

Top Contributor
Entweder über die Console "java Program.java 1 2 3 4 5 6 7"
Oder du kannst das auch über deine IDE machen, in Eclipse kannst du zum Beispiel anhand der Run Configurations Parameter mitgeben.
 

David2456

Aktives Mitglied
Da hast du schon Recht Jardcore, aber das habe ich natürlich als erstes probiert. Hat aber komischerweise nicht funktioniert, weshalb ich auch die Frage gestellt hab, weil ich dachte das das was mit den Zeilen 4 und 5 zu tun hat
 

Jardcore

Top Contributor
Ich weiß nicht genau wo in Zeile 7 das Out herkommt, habe das in System.out.println(...) geändert und dann wie oben beschrieben über die Run Configurations Parameter übergeben und gestartet.

Ergebnis:
Code:
1 is prime.
2 is prime.
3 is prime.
4 is not prime.
5 is prime.
6 is not prime.
7 is prime.
 

Neue Themen


Oben