Hallo zusammen.
ich habe folgendes Problem. Das nachfolgende Programm soll nach eingabe von a oder b oder beidem jeweils 1 program, entweder zur überprüfung der primzahl oder zur auflistung einer liste bis zu einer bestimmten zahl. ich habe aber folgendes problem, nämlich dass das unterprogramm nicht die liste sondern einfach stumpf die eingegebene Zahl wieder ausspuckt. was mach ich falsch?
ich habe folgendes Problem. Das nachfolgende Programm soll nach eingabe von a oder b oder beidem jeweils 1 program, entweder zur überprüfung der primzahl oder zur auflistung einer liste bis zu einer bestimmten zahl. ich habe aber folgendes problem, nämlich dass das unterprogramm nicht die liste sondern einfach stumpf die eingegebene Zahl wieder ausspuckt. was mach ich falsch?
Java:
import java.util.Scanner;
// Klasse Aufgabe 1
public class unter {
//Hauptmethode der Klasse Aufgabe1
public static void main (String[] args) {
//Scanner mit dem Namen scanner anlegen
Scanner scanner = new Scanner(System.in);
//Auswahlmöglichkeit für den Benutzer / Ausgabetext
System.out.println("Was moechten Sie tun?");
System.out.println("\t <1> - Aufgabenteil A: Primzahl-Test");
System.out.println("\t <2> - Aufgabenteil B: Rekursive Aufzaehlung");
System.out.println("\n");
System.out.println("\t Jede andere Zahl ruft beide Aufgabenteile auf.");
System.out.println("\n");
//Einlesen der Zahl um den jeweiligen Aufgabenteil aufzurufen
int operator = scanner.nextInt();
//switch case zum Aufruf von Aufgabenteil A, B oder auch beiden.
switch(operator) {
//Aufgabenteil A
case 1:
System.out.println(" - Primzahl-Test - ");
System.out.println(" Geben Sie nun eine Zahl ein um zu pruefen ob diese eine Primzahl ist:");
//Einlesen der möglichen Primzahl
int eingabe = scanner.nextInt();
//Anlegen des Boolean für das Unterprogramm
boolean primA = primA(eingabe);
break;
//Aufgabenteil B
case 2:
System.out.println(" - Rekursive Zahlenausgabe - ");
System.out.println(" Geben Sie eine Zahl ein bis zu der gezaehlt werden soll.");
int n = scanner.nextInt();
int zahlenB = zahlenB(n);
break;
//beide Aufgabenteile
default:
System.out.println(" - Beide Aufgabenteile - ");
}
}
//Unterprogramm für Aufgabenteil A (Primzahl)
public static boolean primA(int eingabe) {
//Anlegen des Booleans ob es eine Primzahl ist, dieser wird auf true gesetzt.
boolean istPrimzahl = true;
//Bedingung 0, 1
if (eingabe == 0 || eingabe == 1) {
System.out.println(eingabe + " ist keine Primzahl.");
return istPrimzahl;
}
// Schleife zum ermitteln der Primzahl anlegen
for(int i = 2;i < eingabe;i++) {
if (eingabe % i == 0){
istPrimzahl = false;
System.out.println(eingabe + " ist keine Primzahl.");
return istPrimzahl;
}
}
System.out.println(eingabe + " ist eine Primzahl.");
return istPrimzahl;
}
// B Unterprogramm Aufzählung
public static void zahlenB(int n, int eingabe) {
if(eingabe == 0) {
System.out.println(" Ihre Zahl muss größer als 0 sein ");
}else if(n == eingabe) {
System.out.print(n);
}else {
System.out.println(n + ",");
n = n + 1;
zahlenB(n,eingabe);
}
}
}
Zuletzt bearbeitet von einem Moderator: