Java Ошибки Math.min Math.max - PullRequest
       8

Java Ошибки Math.min Math.max

0 голосов
/ 12 февраля 2020

Моя цель состоит в том, чтобы программа 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);
        }

}

1 Ответ

4 голосов
/ 12 февраля 2020

Math.min(1, n) всегда будет возвращать 1, если n >= 1 и Math.max(5, n) всегда будет возвращать 5, если n <= 5. Вам нужно поменять их местами:

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