else without if

Gimi

Mitglied
[CODE lang="java" title="Primzahlen"]import java.io.PrintStream;
import java.util.*;

import javax.lang.model.util.ElementScanner14;
public class Primzahl

{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);

System.out.println("Geben sie eine Zahl ein");

int zahl =sc.nextInt();

for (int zahl2= 2; zahl2 < zahl; zahl2++)
{
int quad=zahl%zahl2;
if (quad==0) {

System.out.println("Dies ist keine Primzahl!"); }
}

else
{
System.out.println("Dies ist eine Primzahl");}
}

}[/CODE]

Ich verstehe nicht wie ich den Fehler beheben kann.
 

Blender3D

Top Contributor
Ich verstehe nicht wie ich den Fehler beheben kann.
Du solltest mittels Teile und Herrsche Strategie das Problem aufteilen.
Dann ist der Code übersichtlicher. Außerdem lässt er sich an anderer Stelle wiederverwenden.
1) Eingabe der Zahl
2) Funktion zur Feststellung ob eine Zahl ein Primzahl ist
3) Mittels Funktion die Zahl testen und das Ergebnis ausgeben.
[CODE lang="java" title="Teile und Herrsche" highlight="5-11,15-21"]import java.util.Scanner;

public class Primzahl {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Geben sie eine Zahl ein");
int zahl = sc.nextInt();
if (!isPrime(zahl))
System.out.println("Dies ist keine Primzahl!");
else
System.out.println("Dies ist eine Primzahl");
}

// laesst sich noch optimieren
public static boolean isPrime(int n) {
for (int i = 2; i < n; i++) {
int quad = n % i;
if (quad == 0)
return false;
}
return true;
}
}[/CODE]
 

httpdigest

Top Contributor
Das erste, was man lernen sollte, ist, eine Java IDE zu nutzen und dort den Keyboard-Shortcut für Autoformatierung.
Ah, gerade gesehen, dass der Autoformatter der IDE bei solch einem Syntaxfehler auch aufgibt und nix macht. :)
Also: Immer konstant autoformatieren, dann kann solch ein Fehler auch gar nicht erst entstehen.
 
K

kneitzel

Gast
Ach je, wobei vi sehr mächtig ist und man ja immer zu der dazugehörigen Klammer springen kann. Das macht es auch einfach, so Klammer-Probleme zu finden: https://vim.fandom.com/wiki/Moving_to_matching_braces

Das kann ich nur aus Erfahrung sagen da ich gerade in einem Projekt bin, in dem auch noch viel auf AIX gemacht wird. Da ist es gut, wenn man neben vi auch tcsh, sed und awk kann :)
 

Blender3D

Top Contributor
Ach je, wobei vi sehr mächtig ist und man ja immer zu der dazugehörigen Klammer springen kann. Das macht es auch einfach, so Klammer-Probleme zu finden:
Muss zu meiner Schande gestehen, dass ich mit vim nicht wirklich gut zurecht gekommen bin. Ich weiß aber auch nicht wie ausgreift vim vor 20 Jahren war. Wir konnten später Eclipse benutzen (war damals auch noch nicht ganz so gut) .
Das beste was ich durch die nicht benutzte Autokorrektur gelernt habe war das Problemlösungen durch Teilen des Problems viel einfacher und übersichtlicher sind.
 

Neue Themen


Oben