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:
public List<Integer> onlyPrimes(int[] numbers) {
ArrayList<Integer> primes = new ArrayList<Integer>();
for (int number : numbers) {
if (isPrime(number)) {
primes.add(number);
}
}
return primes;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.