-2
int min, max;

Scanner s = new Scanner(System.in);
System.out.print("Enter a Value: ");
int val = s.nextInt();
min = max = val;

while (val != 0) {
  System.out.print("Enter a Value: ");
  val = s.nextInt();
  if (val < min) {
      min = val;
  }
  if (val > max) {
     max = val;
  }
};
System.out.println("Min: " + min);
System.out.println("Max: " + max);
  }
}

首先,这是一个重复的问题,我真的需要尽快回答,但没有人回答另一个问题,因为它已经过时了。那就是说;

我应该创建的程序应该采用无限数量的值,直到输入 0,然后它显示输入的最小值和最大值。我现在设置它的方式,最小的总是0。我需要想办法以某种方式忽略0作为最小的数字并获得下一个最小的数字。有任何想法吗?

4

4 回答 4

2

这是一种方法。

while (true) {
  System.out.print("Enter a Value: ");
  val = s.nextInt();

  // stop the loop when 0 is entered (prevent min/max calculations)
  if(val == 0)
     break;

  if (val < min)
     min = val;
  if (val > max)
     max = val;
}
于 2013-10-31T06:27:41.510 回答
0

改变:

if (val < min) {
      min = val;
  }

至:

if ((val < min) && (val != 0)) {
      min = val;
  }
于 2013-10-31T06:25:30.890 回答
0

就像你说的那样将它添加到你的循环条件中怎么样?

while (val != 0) {
    System.out.print("Enter a Value: ");
    val = s.nextInt();
    if (val != 0) {
        if (val < min) {
            min = val;
        }
        if (val > max) {
            max = val;
        }
    } else {
         break;
    }
}
于 2013-10-31T06:25:40.120 回答
0

您需要按以下方式更改条件,它应该可以工作。

    if (val < min && val>0) {
            min = val;
        }
于 2013-10-31T06:26:24.817 回答