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.");
}
}
}
所以我编写了这个程序来检查一个数字是否为素数并且运行良好,但是我在声明 boolean 值“isPrime”的行上收到此错误:“未使用局部变量 isPrime 的值。” 。它不会影响我的程序的功能,但我想知道是否有任何方法可以让它消失。
最佳答案
你在这里犯了一个错误:
if (isPrime = false || n == 1) {
应该是:
if (isPrime == false || n == 1) {
^^
double equals!
出现警告的原因是,如果没有双等号,您将分配给 isPrime
,而不是将其与 false
进行比较。如果您在这里这样做,那么在整个程序中,您只分配给 isPrime
但从未使用过它的值。
顺便说一句,赋值语句的计算结果为分配给它的值,因此 isPrime = false
将始终计算为 false
。这也是编译器没有警告您使用 =
的原因。
关于java - "The value of the local variable is not used.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47611434/