给定2个int值,它们更接近15

时间:2016-08-06 00:39:59

标签: java

我正在尝试编写一个程序,该程序需要2个大于0的整数值并打印最接近15的值。如果它们都结束则打印0。这是一个假设的知识问题,但它让我对某些事情感到困惑,而我的代码看起来错了。

我试图尝试谷歌类似的例子,但有些对我没有意义所以我只是觉得最好问一下。

fadeIn
编辑:我在没有阵列的情况下重新编写代码,将会更新代码。

编辑2:我已更新代码请参阅上文

编辑3:我已经完成删除数组并且一切都成功,除非'value1或value2'整数得到负数。我查看了回复,但我对如何更改代码以解决此问题感到困惑

4 个答案:

答案 0 :(得分:2)

将代码更改为:

if(first>second){
  return num;
}
else if(first<second){
  return num;
}

答案 1 :(得分:2)

如果你先使用java内置的Math.max方法并进行一些验证,那就更清晰了。例如:

private static int maxNonNegativeLessThan15(int a, int b) {
    // Set either or both to 0 in case of negative or >= 15
    if (a >= 15 || a < 0) {
        a = 0;
    }
    if (b >= 15 || b < 0) {
        b = 0;
    }
    return Math.max(a, b);
}

编辑:添加了输入代码作为示例

public static void main(String[] args) {
    while(true) {
        Scanner in = new Scanner(System.in);
        int n1 = in.nextInt();
        int n2 = in.nextInt();
        if (n1 < 0 || n1 >= 15) {
            n1 = 0;
        }
        if (n2 < 0 || n2 >= 15) {
            n2 = 0;
        }
        System.out.println(Math.max(n1,n2));
    }
}

答案 2 :(得分:0)

我没有检查过该值是否小于0.希望你能自己做。

import java.util.*;

public class W221 {
    public static void main(String[] args) {
        int firstVal = 0;
        int secondVal = 0;
        Scanner kb = new Scanner(System.in);
        System.out.println("Give your first value: ");
        firstVal = kb.nextInt();
        System.out.println("firstVal is: " + firstVal);
        System.out.println("Give your second value: ");
        secondVal = kb.nextInt();
        System.out.println("secondVal is: " + secondVal);
        System.out.println(checkMe(firstVal, secondVal));
    }

    private static int checkMe(int firstVal, int secondVal) {
        if (Math.max(firstVal, secondVal) > 15) {
            return 0;
        } else
            return Math.max(firstVal, secondVal);
    }
}

输出:

Give your first value: 
10
firstVal is: 10
Give your second value: 
11
secondVal is: 11
11

答案 3 :(得分:0)

我终于能够解决这个问题了。它可能不是最好的方式,但它有效。

  public class W221 {
  public static void main(String[] args) {
  while (JPL.test()) {
  Scanner kb = new Scanner (System.in);
  int num = kb.nextInt();
  int num2 = kb.nextInt();
  int value1;
  int value2;

  if(num <= 15 || num2 <= 15){
    value1 = 15 - num;
    value2 = 15 - num2;

    if(value1 < 0){
      value1 = 50;
    }
    if(value2 < 0){
      value2 = 50;
    }
    if(value1>value2){
        System.out.println(" " + num2);
    }
    else if(value1<value2){
        System.out.println(" " + num);
    }
  }
  else{
    System.out.println(0);
  }}}}