我是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:")
}
}
答案 0 :(得分:2)
该行
System.out.println("Your number is:")
因为你有,无法访问
else {
return false;
}
之前。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
如果我理解您正在寻找的是实现isprime方法并在主要方法中调用它。
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。我会留给你发现错误和修复。
编辑:没有错误。见下面的评论。答案 3 :(得分:0)
将您的方法更改为静态,您可以在不创建该类的实例的情况下引用它
public static boolean isprime(int n) {