简体   繁体   中英

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.

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 . You need to swap them:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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