这段代码有什么问题(groovy)

时间:2015-06-30 22:15:48

标签: 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

1 个答案:

答案 0 :(得分:0)

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

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)