我的程序要求用户输入选项(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
}
}
提前感谢您的协助!
答案 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());
}