Я пытался усовершенствовать эту программу самостоятельно, и я просто не вижу, что я делаю неправильно. Цель этой программы - сделать эти вещи.
1) запросить у пользователя номер
2) если число положительное, выведите число
3) если число также является простым числом, выведите его также простое число
4) продолжайте выполнять вышеуказанные действия, пока пользователь не введет отрицательное число.
Проблема заключается в том, что программа работает и определяет, является ли введенное число простым числом номер или нет, в начале. После этого, когда у пользователя запрашивают другой номер (если он больше 0), программа просто не вернется к началу, чтобы определить, простое ли число. Вместо этого он просто придерживается того, какое значение было определено в начале (простое или не простое), и выводит то же выражение, что и для первого значения, для второго. Я хочу, чтобы он каждый раз переоценивал значение, чтобы увидеть, является ли число простым или нет, пока пользователь не введет отрицательное число. PS Это мой первый год обучения на степень C .S. Я считаю программирование действительно увлекательным и сложным (концепция). Но я принимаю это вызов и нахожу чувство выполненного долга каждый раз, когда прорабатываю эти проблемы.
import java.util.Scanner;
public class Prime3 {
public static void main(String[] args) {
int userNum;
int i = 2;
boolean isPrime = true;
Scanner input = new Scanner(System.in);
// Ask user for initial number
System.out.println("Please enter a number.");
userNum = input.nextInt();
// Determining whether or not number entered is prime
while (i <= userNum/2) {
System.out.println("Checking if " + i + " is a multiple of n");
if (userNum%i == 0) {
System.out.println(i + " is a multiple of " + userNum);
isPrime = false;
break;
}
i++;
}
// Print out user number if the number is positive.
while (userNum > 0) {
System.out.println("You entered the number, " + userNum);
if (isPrime) { // If it's a prime, state that it's a prime
System.out.println("No even multiples found. " + userNum + " is a prime number");
}
userNum = input.nextInt();
}
System.out.println("Invalid input. Program now ending.");
System.exit(0);
}
}