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.");
}
}
}
所以我编写了这个程序来检查一个数字是否为素数并且它运行良好,但我在布尔值&#34; isPrime&#34;的行上得到了这个错误。声明:&#34;不使用局部变量isPrime的值。&#34;。它并没有影响我的程序的功能,但我想知道是否有任何方法可以让它消失。
答案 0 :(得分:1)
你在这里弄错了:
CKEDITOR: config.js
应该是:
if (isPrime = false || n == 1) {
出现警告是因为没有双等号,您将分配给if (isPrime == false || n == 1) {
^^
double equals!
,而不是将其与isPrime
进行比较。如果您在此处执行此操作,那么在整个程序中,您只分配给false
但从未使用过它的值。
顺便说一下,赋值语句会计算分配给它的值,因此isPrime
将始终计算为isPrime = false
。这也是编译器没有警告您使用false
的原因。
答案 1 :(得分:0)
您的if
声明错误 - 您使用false
运算符将isPrime
分配给=
,而不是使用{{false
检查它是否为==
1}} operator:
if (isPrime == false || n == 1) {
// Here-^
System.out.print(n + " is not prime.");
} else {
System.out.print(n + " is prime.");
}
或者,由于isPrime
是boolean
,因此只需直接评估它:
if (!isPrime || n == 1) {
// Here^
System.out.print(n + " is not prime.");
} else {
System.out.print(n + " is prime.");
}