package checkPrime;
import java.util.Scanner;
public class CheckPrime {
public static void main(String[] args) {
boolean isPrime = true;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number: ");
int n = scanner.nextInt();
scanner.close();
for (int i = 2; i < n; i++) {
if (n % i == 0) {
isPrime = false;
}
}
if (isPrime = false || n == 1) {
System.out.print(n + " is not prime.");
} else {
System.out.print(n + " is prime.");
}
}
}
因此,我编写了该程序来检查数字是否为质数,并且是否工作良好,但是在声明布尔值“ isPrime”的行上出现此错误:“未使用局部变量isPrime的值。”它并没有影响程序的功能,但我想知道是否有任何方法可以使它消失。
最佳答案
您在这里犯了一个错误:
if (isPrime = false || n == 1) {
应该是:
if (isPrime == false || n == 1) {
^^
double equals!
出现警告的原因是,如果没有双等号,您将分配给
isPrime
而不是将其与false
进行比较。如果您在此处进行操作,则在整个程序中,您只分配了isPrime
,但从未使用过其值。顺便说一句,赋值语句对赋给它的值求值,因此
isPrime = false
将始终求值为false
。这也是为什么编译器未警告您使用=
的原因。