-3

我对java编码很陌生。我很难找出如何将我main的方法与确定值是否为素数的方法联系起来。当我在 Eclipse 中运行下面的代码时,该方法似乎根本没有执行。有谁知道我做错了什么?

此外,对于最后一部分,我正在考虑System.out打印输入值是否为素数。即true或者false会很好。

import java.util.*;

class IsPrime {
    public boolean isprime(int n) {
        Scanner input1= new Scanner(System.in);
        System.out.println("input single integer?");

        int n1 = input1.nextInt();

        int i,c=0;

        for(i=1;i<=n1;i++) {
            if(n1%i==0){
                c++;
            }
        }
        if(c==2) {
            return true;
        } else {
            return false;  
        }
        System.out.println("Your number is:")
    }
}
4

4 回答 4

2

首先,Strawberry 和 appclay 说的都是对的。

另一方面,您的方法isprime是实例方法,而您的main(我猜您谈论的是主类的方法)是类(静态)方法。

尝试以下操作:

public static void main(String[] args) {
    int possiblePrime = // initialise your parameter
    IsPrime isPrime = new IsPrime();
    boolean primeOrNot = isPrime.isprime(possiblePrime);
    System.out.println("Your number is prime: " + primeOrNot);
}
于 2012-04-04T23:36:37.563 回答
2

线

   System.out.println("Your number is:") 

无法访问,因为您有

else {
return false;
}

在它之前。

于 2012-04-04T23:32:23.023 回答
0

如果我了解您想要的是实现一个 isprime 方法并在 main.js 中调用它。

class IsPrime {
    public boolean isPrime(int n) {
        int i,c=0;

        for(i=1;i<=n;i++) {
            if(n%i==0){
                c++;
            }
        }
        if(c==2) {
            return true;
        } else {
            return false;  
        }
    }
    public static void main(String[] args) {
        Scanner input1= new Scanner(System.in);
        System.out.println("input single integer?");

        int n = input1.nextInt();
        IsPrime isPrime = new IsPrime();
        System.out.println("Your number is prime: " + isPrime.isPrime(n));
    }
}

那应该做你想做的事。但是,您的代码中有一个错误。对于所有数字,您所拥有的将返回 true,而不仅仅是素数。我会留给你来发现错误和修复。

编辑:没有错误。请参阅下面的评论。

于 2012-04-04T23:39:17.137 回答
0

将您的方法更改为静态,您可以在不创建该类的实例的情况下引用它

public static boolean isprime(int n) {
于 2012-04-05T00:52:46.217 回答