[英]Why is my code not printing the prime numbers
I am trying to create a program that outputs only prime numbers.我正在尝试创建一个只输出素数的程序。 Can you guys tell me what's wrong with it?你们能告诉我它有什么问题吗? I'm new to coding so excuse my beginner mistakes.我是编码新手,所以请原谅我的初学者错误。
Here's my code so far:到目前为止,这是我的代码:
// Import statement:
import java.util.ArrayList;
public class PrimeDirective {
// Add your methods here:
public boolean isPrime(int number){
if (number == 2) {
return true;
}
if (number < 2) {
return false;
}
for (int i = 2; i < number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
public int onlyPrimes(int number){
ArrayList<Integer> primes = new ArrayList<Integer>(){
for (number : numbers) {
if (isPrime(number)) {
primes.add(number);
}
}
return primes;
}
}
public static void main(String[] args) {
PrimeDirective pd = new PrimeDirective();
int[] numbers = {6, 28, 29, 33, 11, 100, 101, 43, 89};
System.out.println(pd.onlyPrimes(numbers));
}
}
Here's the errors that I get when running the code:这是我在运行代码时遇到的错误:
$javac PrimeDirective.java
PrimeDirective.java:29: error: illegal start of type
for (number : numbers) {
^
PrimeDirective.java:29: error: <identifier> expected
for (number : numbers) {
^
PrimeDirective.java:29: error: ';' expected
for (number : numbers) {
^
PrimeDirective.java:29: error: illegal start of type
for (number : numbers) {
^
PrimeDirective.java:29: error: <identifier> expected
for (number : numbers) {
^
PrimeDirective.java:29: error: ';' expected
for (number : numbers) {
^
PrimeDirective.java:30: error: illegal start of type
if(isPrime(number)) {
^
PrimeDirective.java:30: error: <identifier> expected
if(isPrime(number)) {
^
PrimeDirective.java:30: error: ';' expected
if(isPrime(number)) {
^
PrimeDirective.java:33: error: ';' expected
}
^
PrimeDirective.java:42: error: class, interface, or enum expected
public static void main(String[] args) {
^
PrimeDirective.java:45: error: class, interface, or enum expected
int[] numbers = {6, 28, 29, 33, 11, 100, 101, 43, 89};
^
PrimeDirective.java:46: error: class, interface, or enum expected
System.out.println(pd.onlyPrimes(numbers));
^
PrimeDirective.java:49: error: class, interface, or enum expected
}
^
14 errors
And also, if you guys can give me some tips so my code doesen't look so messy.而且,如果你们能给我一些提示,那么我的代码看起来不会那么混乱。
You should update the onlyPrimes method like this:您应该像这样更新 onlyPrimes 方法:
public List<Integer> onlyPrimes(int[] numbers) {
ArrayList<Integer> primes = new ArrayList<Integer>();
for (int number : numbers) {
if (isPrime(number)) {
primes.add(number);
}
}
return primes;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.