有没有办法在int类型方法中返回void

时间:2019-09-15 16:30:12

标签: java class methods

我试图创建一种方法来检查数字是否为质数,但是在创建该方法时我得到的是0而不是void。有没有一种方法可以跳过我在void中获得0的位置。如果没有,请提出其他建议。

我尝试将a替换为null,但无法从null投射到int

public int getPrime(int n) {

    int a =0;
    boolean k = true;
    for (int i = 2 ; i<n;i++) {
        if(n%i==0) k = false;


    }
    if(k==true) { a = n;

    return a;}
    else {return null;} //Here is the problem

3 个答案:

答案 0 :(得分:0)

在此处使用非基本类型。整数与整数。这样您就可以在需要的地方返回null。

答案 1 :(得分:0)

我认为您正在尝试检查您的数字是否是主数字,该方法必须返回布尔值而不是整数。

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

这不是最佳算法,但它适用于真实类型。

答案 2 :(得分:0)

是的,没有素数检查,结果为boolean

public static boolean isPrime(int n) {
  if(n<2)
    return false;
  for(int i=(int)Math.sqrt(n); i>=2; i--)
    if(n%i == 0)return false;
  return true;
}

打印素数,不要打印非素数:

public static void main(String args[]) {
  for(int i=0;i<100;i++)
    if(isPrime(i))
      System.out.println(i);
}

测试:https://ideone.com/nNiY1T