Error "unreachable Code"

Null-checker

Mitglied
Hi! Folgendes Programm sollte prüfen ob eine eingelesene Zahl eine Primzahl ist.

Die Hauptaufgabe sollte eigentlich stimmen aber Eclipse wirft die Fehlermeldung "unreachable Code" bei der letzten if-Bedingung. Ich weiß zwar was das bedeutet aber weiß nicht warum ;(

Ich bin für jede Idee und Hilfe dankbar 🙂

lg,

Java:
import java.util.Scanner;

public class Primzahl {

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

//		Bestimmen Sie, ob eine eingegebene natürliche Zahl eine Primzahl ist. 
		
		int prüfz;
		boolean prim = false;
		Scanner s = new Scanner(System.in);
		
		System.out.println("Geben Sie Zahl größer 1 zur Überprüfung ein!");
		prüfz = s.nextInt();
		
		if(prüfz <= 1){
			System.out.println("Falsche Eingabe! Bitte Vorgang wiederholen!");
		}
		
		for (int i = prüfz ; true; i++){
	        
			for (int teiler = 2; teiler < i; teiler++){
	            
	        	if (i % teiler != 0){
	                prim = true;
	            }
	        	else{
	        		prim = false;
	        	}
	           }       
		}
		
		if (prim = false){
			System.out.println("Keine Primzahl");
			}
			else{
				System.out.println("Primzahl!");
			}	
	}
}
 
Java:
if (prim = false){
            System.out.println("Keine Primzahl");
            }
            else{
                System.out.println("Primzahl!");
            }

prim = false ist eine Zuweisung. prime == false ist eine Abfrage.
 
In Zeile 32 endet deine for schleife.

In dieser for-Schleife müsste soweit ich mich jetzt noch erinner deine if abfrage rein:

Java:
		for (int i = prüfz; true; i++) {

			for (int teiler = 2; teiler < i; teiler++) {

				if (i % teiler != 0) {
					prim = true;
				} else {
					prim = false;
				}
				if (prim == false) {
					System.out.println("Keine Primzahl");
				} else {
					System.out.println("Primzahl!");
				}
			}
		}

Ich kann es leider grad nicht testen. Hoffe es funktioniert so wie du es dir wünschst.
 
Zuletzt bearbeitet:
Also wenn ich in die Schleife gebe hab ich eine Endlosschleife und außerhalb den Error :-/

Hab beim Testen gerade bemerkt, dass das Programm nicht richtig läuft :-/ das ist echt nicht meine Welt
 
Hi,
Das Problem liegt in der Zeile 21. Dort steht im for Statement
Java:
for (int i = prüfz ; true; i++)

das 2 Argument in diesem for- loop ist die Abbruchbedingung. Die ist in Deinem Code immer true. Deshalb bekommst du die Meldung, "unreachable Code" bei der if- Prüfung (die nicht so ganz im Sinn der Prüfung ist... aber diese hast Du ja bereits korrigiert.)

Java:
if (prim == false){ .... }

versuch es mal so:
Java:
public class Primzahl {

	public static void main(String[] args) {

		//      Bestimmen Sie, ob eine eingegebene natürliche Zahl eine Primzahl ist.

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

		System.out.println("Geben Sie Zahl größer 1 zur Überprüfung ein!");
		zahl = s.nextInt();

		if(zahl <= 1){
			System.out.println("Falsche Eingabe! Bitte Vorgang wiederholen!");
		}
		
		if(isPrim(zahl))
			System.out.println("Primzahl");
		else
			System.out.println("Keine Primzahl");
		
		
	}
	
	public static boolean isPrim(int n) {
		int counter = 2;
		boolean isprim = true;
		
		while(counter < n) {
			if((n % counter) == 0) {
				isprim = false; 
			}

			counter++;
		}
		return isprim;
	}
}
 
Zuletzt bearbeitet:

Zurück
Oben