【问题标题】:Adding a new object to an array according to loop returns根据循环返回向数组添加新对象
【发布时间】:2014-04-23 17:09:01
【问题描述】:

我对这个主题进行了一些研究(我对 Java 还很陌生,所以请原谅我的糟糕/不正确的措辞),但我没有找到任何相关的答案,所以,就这样吧。

我正在开发一个可以打印素数的程序,但遇到了以下问题。

代码如下:

public class pnumba {

    public static void main(String[] args) {

        int pnlimit = 100;
        System.out.println("Printing prime numbers");
        for (int numer = 2; numer <= pnlimit; numer++) {
            if (checkforprime(numer)) {
                System.out.println(numer);
            }

        }
    }

    public static boolean checkforprime(int numer) {
        for (int i = 2; i < numer; i++) {
            if (numer % i == 0) {
                return false;
            }
        }
        return true;
    }
}

我的程序将所有质数 up 打印到 100 而不是其中的 100 个。我的想法是创建一个包含 100 个素数的数组,并在所述数组达到其限制时打破循环以解决此问题。

我的问题如下:

  1. 如何创建一个循环来填充数组,当我 checkforprime() 方法返回 true?
  2. 当循环达到 100 个素数时,我是否必须使用 break; 来停止循环 数字?
  3. 我可以使用&lt;=arrayname.length 来停止for 循环吗? 替代方案?

如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: java arrays loops for-loop primes


    【解决方案1】:

    如下改变你的主块:

    int counter = 1;
    System.out.println("Printing prime numbers");
    
    for (int numer = 2; counter <= 100; numer++){
        if (checkforprime(numer)) {
            System.out.println(numer);
            counter++;
        }
    
    }
    

    此处的 Counter 将帮助执行您的循环,直到显示 100 个素数......!

    【讨论】:

    • 重要的区别是此代码计数找到了多少个素数(在找到 100 个后停止),并且 OP 的代码检查 2 到 100 之间的数字是否为素数跨度>
    【解决方案2】:

    你已经快到了。声明一个数组并在 main 方法中填写你想要多少个数字,而不是打印到屏幕上。这将帮助您在数组中存储任意数量的素数。

    public static void main(String[] args) {
    
        int counter = 0;
        int numberOfPrimes = 100;
        int[] primeArray = new int[numberOfPrimes];
        int arrayCounter = 0;
        System.out.println("Printing prime numbers");
        for (int numer = 2; numer <= counter; numer++) {
    
                if (checkforprime(numer)) {
                    primeArray[arrayCounter] = numer;
                    counter ++;
                    arrayCounter ++;
            }
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 2021-04-09
      • 2021-11-18
      相关资源
      最近更新 更多