如何返回正确的值?

时间:2018-08-17 22:00:21

标签: java arrays

如果以下两个条件之一:-1biggerThanK(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;
    }
}

1 个答案:

答案 0 :(得分:1)

您应该将其放在函数中。

如果只有一个条件需要为假,我将使用这样的体系结构:

if(condition 1)
    if(condition 2)
        //update smallest
    else
        return -1
else 
    return -1