Java - 两次打印东西

时间:2016-10-07 14:07:37

标签: java loops output

我的程序要求用户输入选项(1,2,3或0)。选项1要求用户输入英尺和英寸。选择2要求用户输入厘米。 每次我这样做,程序会打印出我需要的两倍(请参见下文):

Enter choice: 1

Enter feet: 12

Enter inches: 2

Enter feet: 12 //This second part should not happen

Enter inches: 2

我已尝试评论addConversion(...)行,但这不允许我正确打印选项3。当我评论System.out.println(feetInchesToCm())时,我的转换不会打印出来。

我的代码的主要功能如下:

public static void main(String[] args) throws NumberFormatException, IOException
{
    int choice;

    do
    {
        displayMenu();

        choice = getInteger("\nEnter choice: ", 0, Integer.MAX_VALUE);
        if(choice == 1)
        {
            addConversion(feetInchesToCm());
            System.out.println("");
            System.out.println(feetInchesToCm());
        }
        else if(choice == 2)
        {
            addConversion(cmTofeetInches());
            System.out.println("");
            System.out.println(cmTofeetInches());
        }
        else if(choice == 3) 
        {                       
            if(_prevConversions == null)
            {
                break;
            }
            else if(_prevConversions != null)
            {
                for(int i = 1; i <= _numConversions; i++)
                {
                    System.out.print("Conversion # " + i + ": ");
                    System.out.println(_prevConversions[i]);
                }
            }
        }
    }while(choice != 0);
    if(choice == 0)
    {
        System.out.println("\nGoodbye!");
        System.exit(0); //Ends program
    }
}

提前感谢您的协助!

1 个答案:

答案 0 :(得分:-2)

您已明确调用您的方法两次

保存返回值,或者不要再次调用它。

例如

  if(choice == 1)
    {
        int cm = feetInchesToCm();
        addConversion(cm);
        System.out.println("");
        System.out.println(cm);
    }

或者,如果您不需要保存值以便打印它,只需直接在返回值上调用addConversion

  if(choice == 1)
    {
        System.out.println("");
        addConversion(feetInchesToCm());
    }