Java比较10 <-5为真

时间:2019-02-18 12:59:21

标签: java

我正在学习Java并遇到问题,我进行了最大/最小练习并尝试了下面的代码,对于正数,它可以正常工作,但是当我尝试负数时,事情就变得混乱了。

如果输入5,则得到min = 5,max = 5,如果输入10,则得到min = 5 max = 10,到目前为止,效果很好,但是如果键入-5,则得到min = -5和max = -5,事情仍然变得很奇怪,如果您输入7,则得到min = -5和max = 7。

有人可以解释为什么会这样吗?

public static void main(String[] args) {
    int ctrl;
    int min = 0;
    int max = 0;
    boolean hasNextInt;
    Scanner scanner = new Scanner(System.in);
    int counter = 0;
    while (true) {
        System.out.println("Enter your number:");
        hasNextInt = scanner.hasNextInt();  
        if(hasNextInt) {
            ctrl = scanner.nextInt();
            if(counter == 0) {
                min = ctrl;
                max = ctrl;
                counter ++;
            }
            if(min>ctrl)
                min = ctrl;
            if(max<ctrl);
                max = ctrl;
            System.out.println("Minimum Number entered: " + min);
            System.out.println("Maximum Number entered: " + max);
            System.out.println("");
            scanner.nextLine();
        }else {
            System.out.println("Invalid Number. Program stop working.");
            break;
        }
    }
    scanner.close();
}

1 个答案:

答案 0 :(得分:4)

if(max<ctrl);
  max = ctrl;

这种缩进极具误导性。

使用执行代码格式化的IDE。你真正写的是

if(max<ctrl){}
max = ctrl;

还应避免在没有if的情况下进行else / for / {}等。