简体   繁体   English

Java Math.min Math.max 错误

[英]Java Math.min Math.max Errors

My goal is to have the java program receive input from a user, display the inputted number, between 1 and 5. So if a user enters a number greater than 5, it shows as 5, and if the number is lower than 1, it shows as 1. However the program is only showing an output of 1 regardless of the number entered.我的目标是让java程序接收用户的输入,显示输入的数字,1到5之间。所以如果用户输入一个大于5的数字,它显示为5,如果数字小于1,它显示为 1。然而,无论输入的数字如何,程序都只显示输出 1。

import java.util.Scanner;

public class TestMax {

        int minNum = 1;
        int maxNum = 5;

        public int inputNum() {
            Scanner userInput = new Scanner(System.in);
            int userinput = Integer.parseInt(userInput.nextLine());
            return (userinput);
        } 

        public void displayNum(int userNum) {
            userNum = 0;
            Math.min(userNum, minNum);
            Math.max(userNum, maxNum);
            System.out.printf("%d\n", Math.min(1, 
            Math.max(5, userNum)));
        }

        public static void main(String[] args) {    
            TestMax TestMax = new TestMax();
            int userNum = TestMax.inputNum();
            TestMax.displayNum(userNum);
        }

}

Math.min(1, n) will always return 1 if n >= 1 and Math.max(5, n) will always return 5 if n <= 5 . Math.min(1, n)将始终返回1 ,如果n >= 1Math.max(5, n)将总是返回5如果n <= 5 You need to swap them:你需要交换它们:

System.out.printf("%d\n", Math.max(1, Math.min(5, userNum)));

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

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