“本地变量的值未使用。”
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说法是错误的 - 你正在使用的=运营商分配false到isPrime,而不是检查,如果它是false与==操作:
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."); 
} 
回答:
你在这里犯了一个错误:
if (isPrime = false || n == 1) { 它应该是:发生
if (isPrime == false || n == 1) {       ^^ 
     double equals! 
的警告,因为没有双等号,你需要将其与false比较分配给isPrime代替。如果你这样做,那么在整个程序中,你只分配到isPrime,但从未使用过它的值。
顺便说一下,赋值语句的赋值是赋值给它的,所以isPrime = false总是会计算为false。这也是编译器没有警告你使用=的原因。
以上是 “本地变量的值未使用。” 的全部内容, 来源链接: utcz.com/qa/257808.html






