Ich arbeite an einer Aufgabe, bei der ich eine Primzahl faktorisieren soll. Hier ist die Lösung, die ich gekommen bin oben mit:Keine Unterbrechung in der verschachtelten Schleife?
import java.util.Scanner;
public class Task8 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Which number to factorize:");
int number = input.nextInt();
System.out.println();
int counter = 1;
for (int i = 2; i <= number; i++) {
while (number % i == 0) {
if (counter == 1 && i == number) {
System.out.println("The number is a prime, can’t be factorized.");
break;
} else {
System.out.println("Prime" + " " + "#" + counter + ":" + " " + i);
number = number/i;
++counter;
}
}
}
}
}
jedoch ein Buch ich zur Zeit des Studiums, stark Ratschläge gegen die Verwendung von break-Anweisungen in Schleifen. Wie also würde ich in diesem Fall auf einen verzichten?
Prost!
Gibt dieses Buch Gründe? – Blorgbeard
Sie können die Schleife in eine Methode ziehen und stattdessen 'return' verwenden. Aber natürlich mögen manche Leute das auch nicht (mehrfache Rückkehrpunkte aus einer Methode). Es ist eine Stilfrage. Sie müssen selbst entscheiden, was zu tun ist. – Blorgbeard
Sie könnten ein boolesches Flag außerhalb der while-Schleife hinzufügen, es in die 'while'-Prüfung einbeziehen und es innerhalb der Schleife basierend auf der 'if'-Anweisung setzen. –