首页 > 解决方案 > if 语句未在此介质查找代码中运行

问题描述

import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num1, num2, num3;
        System.out.println("Enter first number.");
        num1 = scan.nextInt();
        System.out.println("Enter second number.");
        num2 = scan.nextInt();
        System.out.println("Enter third number.");
        num3 = scan.nextInt();

        if(num1 > num2 && num2 > num3) {
            System.out.println("Medium value is: " + num2);
        } else if (num3 > num1 && num1 > num2) {
            System.out.println("Medium value is: " + num1);
        } else if (num1 > num3 && num3 > num2) {
            System.out.println("Medium value is: " +num3);
        }
    }
}

我编写了这段代码来从输入的数字中找到中间数字,但是 if 语句没有运行。

标签: java

解决方案


不完全是您问题的答案,但为什么不完全摆脱这些if陈述并尝试以下方法:

return Math.max(Math.max(Math.min(num1, num2), Math.min(num2, num3)), Math.min(num1, num3));

// [0, 10, 10] -> 10
// [50, 30, 20] -> 30
// [1, 1, 1] -> 1
// etc.

这也将处理数字相等或三个中的两个相等的情况。


推荐阅读