【问题标题】:Java - while loop adding first output to second outputJava - while循环将第一个输出添加到第二个输出
【发布时间】:2016-11-28 12:39:27
【问题描述】:

我有一个程序可以将任何罗马值作为用户输入并输出十进制等效值。我正在尝试在程序中添加一个循环以无限期地询问罗马值,然后输出十进制等效值,然后循环返回并再次询问....

【问题讨论】:

  • 你想打印1000
  • 也许在开始下一个数字之前初始化decimalNum 是个好主意?
  • 是的,M = 1000(十进制)的罗马值,第一个输出是 I = 1,所以程序以某种方式获取第一个值输出 (1) 并将其添加到第二个含义 M = 1001。当然程序正在为所有其他值执行此操作,这意味着只有输入的第一个值是正确的

标签: java loops methods


【解决方案1】:

问题在于decimalNum 是一个全局变量,应该(但不是)在用户输入罗马数字后在 while 循环内重新初始化。

【讨论】:

    【解决方案2】:

    每次转化只需重置decimalNum

    while (true) {
            decimalNum = 0;
    .....
    

    问题是在为I 计算十进制后,该值存储在变量decimalNum 中。当您开始转换下一个时,它会将新值添加到现有值中。

    【讨论】:

      【解决方案3】:

      由于您将decimalNum 设置为static(在类级别),因此在多次迭代中使用相同的变量,因此将其移动到内部while 循环为int decimalNum =0;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-11
        • 2020-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多