繁体   English   中英

如何返回正确的值?

[英]How can I return the right value?

如果以下两个条件之一,我需要返回-1biggerThanK(array[i], k)prim(array[i])返回false 我试图把else { smallest = -1; } 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;
    }
}

您应该将此放在函数中。

如果只有一个条件需要为假,那么我将使用这样的架构:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM