Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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
Java 为什么我在这个while循环中声明一个布尔值与在这个while循环中声明一个布尔值有关系? 公共类查找时间{ 公共静态void main(字符串[]args){ 素数的整数=50; 最后的整数=10; 整数计数=0; 整数=2; 布尔值isPrime=true; while(计数_Java_Loops_Boolean - Fatal编程技术网

Java 为什么我在这个while循环中声明一个布尔值与在这个while循环中声明一个布尔值有关系? 公共类查找时间{ 公共静态void main(字符串[]args){ 素数的整数=50; 最后的整数=10; 整数计数=0; 整数=2; 布尔值isPrime=true; while(计数

Java 为什么我在这个while循环中声明一个布尔值与在这个while循环中声明一个布尔值有关系? 公共类查找时间{ 公共静态void main(字符串[]args){ 素数的整数=50; 最后的整数=10; 整数计数=0; 整数=2; 布尔值isPrime=true; while(计数,java,loops,boolean,Java,Loops,Boolean,,我假设您得到了正确的答案,但您不确定它是如何/为什么得到的 在之外声明isPrime而不起作用。为什么?因为如果在循环中找不到素数,则将isPrime设置为false…并且再也不会将其重置为true。因此,非素数之后的任何后续数字都将自动被删除默认为非素数 在中声明isPrime,而起作用。为什么?因为每次您找到素数或非素数时,您都会将isPrime重置回其原始值,并且可以并将相应地评估每个后续数的素数 如果你仍然无法理解,试着把它画出来 希望这能有所帮助。我们看到的是,你在中声明了isPri

,我假设您得到了正确的答案,但您不确定它是如何/为什么得到的

之外声明
isPrime
不起作用。为什么?因为如果在循环中找不到素数,则将
isPrime
设置为
false
…并且再也不会将其重置为
true
。因此,非素数之后的任何后续数字都将自动被删除默认为非素数

中声明
isPrime
,而
起作用。为什么?因为每次您找到素数或非素数时,您都会将
isPrime
重置回其原始值,并且可以并将相应地评估每个后续数的素数

如果你仍然无法理解,试着把它画出来


希望这能有所帮助。

我们看到的是,你在
中声明了
isPrime
循环:|是的,只要你得到前五十个素数,这是正确的。怎么了?我重新编辑了这个问题。我在循环外声明布尔值,而我只得到2和3。这现在就没有什么意义了,因为你得到了在while循环内外都定义了它。删除第二个isPrime上的布尔声明
public class FindPrimes {
    public static void main(String[] args) {
        int Number_of_prime = 50;
        int number_of_final = 10;
        int count = 0;
        int number = 2;
        boolean isPrime = true;

        while (count < Number_of_prime) {
            for (int divisor = 2; divisor <= number / 2; divisor++) {
                if (number % divisor == 0) {
                    isPrime = false;
                    break;
                }
            }

            if (isPrime) {
                count++;
                if (count % number_of_final == 0)
                    System.out.println(number);
                else
                    System.out.print(number + " ");
            }
            number++;
        }
    }
}