Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;不使用局部变量的值。”; packagecheckprime; 导入java.util.Scanner; 公共类校验素数{ 公共静态void main(字符串[]args){ 布尔值isPrime=true; 扫描仪=新的扫描仪(System.in); System.out.print(“输入一个数字:”); int n=scanner.nextInt(); scanner.close(); for(int i=2;i操作符检查它是否false: 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."); } } }_Java_Boolean - Fatal编程技术网

&引用;不使用局部变量的值。”; packagecheckprime; 导入java.util.Scanner; 公共类校验素数{ 公共静态void main(字符串[]args){ 布尔值isPrime=true; 扫描仪=新的扫描仪(System.in); System.out.print(“输入一个数字:”); int n=scanner.nextInt(); scanner.close(); for(int i=2;i操作符检查它是否false: 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."); } } }

&引用;不使用局部变量的值。”; packagecheckprime; 导入java.util.Scanner; 公共类校验素数{ 公共静态void main(字符串[]args){ 布尔值isPrime=true; 扫描仪=新的扫描仪(System.in); System.out.print(“输入一个数字:”); int n=scanner.nextInt(); scanner.close(); for(int i=2;i操作符检查它是否false: 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."); } } },java,boolean,Java,Boolean,所以我写了这个程序来检查一个数字是否是素数,它是否工作正常,但是我在声明布尔值“isPrime”的那一行得到了这个错误:“没有使用局部变量isPrime的值。”。这不会影响我的程序的功能,但我想知道是否有任何方法可以让它消失。如果语句错误,您将使用=操作符将false赋值给isPrime,而不是使用=/code>操作符检查它是否false: package checkPrime; import java.util.Scanner; public class CheckPrime {

所以我写了这个程序来检查一个数字是否是素数,它是否工作正常,但是我在声明布尔值“isPrime”的那一行得到了这个错误:“没有使用局部变量isPrime的值。”。这不会影响我的程序的功能,但我想知道是否有任何方法可以让它消失。

如果
语句错误,您将使用
=
操作符将
false
赋值给
isPrime
,而不是使用
=/code>操作符检查它是否
false

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
是一个
boolean
,只需直接计算它:

if (isPrime == false || n == 1) {
    // Here-^
    System.out.print(n + " is not prime.");
} else {
    System.out.print(n + " is prime.");
}

你在这里犯了一个错误:

if (!isPrime || n == 1) {
    // Here^
    System.out.print(n + " is not prime.");
} else {
    System.out.print(n + " is prime.");
}
应该是:

if (isPrime = false || n == 1) {
出现警告的原因是,如果没有双等号,您将分配给
isPrime
,而不是将其与
false
进行比较。如果您在这里这样做,那么在整个程序中,您只分配给了
isPrime
,但从未使用过它的值


顺便说一句,赋值语句的计算结果是分配给它的值,因此
isPrime=false
的计算结果总是
false
。这也是为什么编译器没有警告您使用
=

使用
==
比较值;一个
=
是分配。因此
如果(isPrime=false | n==1)
是错误的,那么它一定是:
如果(isPrime==false | n==1)
,甚至更好的是:
如果(!isPrime | n==1)
。额外注意……为了防止这种错误,请始终反向测试:
false==isPrime
,因此,如果您不小心使用了单个
=
false=isPrime
会生成一个编译器错误,而
isPrime=false
会编译并运行,但不会按需要执行。
if (isPrime == false || n == 1) {
            ^^
      double equals!