如果以下两个条件之一:-1
或biggerThanK(array[i], k)
返回prim(array[i])
,我需要返回false
。我尝试放置else { smallest = -1; }
,但是如果我输入的值同时符合这两个条件,则它仍显示-1
。
import java.util.Scanner;
public class Main {
public static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int smallest = Integer.MAX_VALUE;
int n = scanner.nextInt();
int k = scanner.nextInt();
int[] array = new int[n];
for (int i = 0; i < array.length; i++) {
array[i] = scanner.nextInt();
}
for (int i = 0; i < array.length; i++) {
if (biggerThanK(array[i], k) && prim(array[i])) {
if (array[i] < smallest) {
smallest = array[i];
}
}
}
System.out.println(smallest);
}
public static boolean biggerThanK(int number, int k) {
if (number >= k) {
return true;
} else {
return false;
}
}
public static boolean prim(int number) {
for (int i = 2; i < number; i++) {
if (number % i == 0) {
return false;
}
} return true;
}
}
答案 0 :(得分:1)
您应该将其放在函数中。
如果只有一个条件需要为假,我将使用这样的体系结构:
if(condition 1)
if(condition 2)
//update smallest
else
return -1
else
return -1