这段代码(groovy)出了什么问题



这段代码取一系列数字,然后打印出输入的最高数字。据推测,代码中存在一个缺陷,对于某个数字序列,该缺陷无法产生正确的输出。然而,我找不到任何一系列没有显示正确输出的数字,也看不到代码中的问题。

int m = 0
boolean finished = false
while (!finished) {
    print "Enter another number (0 to finish): "
    String s = System.console().readLine()
    int num = Integer.parseInt(s)
    if (num != 0) {
        if (num > m) {
            m = num
        }
    } else {
        finished = true
    }
}
println m

你回答说自己——负数是罪魁祸首。这是一个固定版本:

Integer m = null
boolean finished = false
while (!finished) {
   print "Enter another number (0 to finish): "
   String s = System.console().readLine()
   Integer num = Integer.parseInt(s)
   if (num != 0) {
      if (num > m) {
         m = num
      }
   } else {
      finished = true
  }
}
println (m == null ? "No input provided" : m)

最新更新