我不知道为什么我的循环打印两次。我有两个单独的类,我已经创建了无论出于什么原因,我无法弄清楚为什么它打印两次到控制台。我不确定是不是因为我在TableTest中调用了它?或者如果我在其他地方做错了什么。我已经在我的IDE和命令行中运行了这个,但我仍然遇到同样的问题。
public class TableTest {
public static void main(String[] args){
int getBegin, getEnd;
System.out.println("Enter a number to start with: ");
Scanner input = new Scanner(System.in);
getBegin = input.nextInt();
while (getBegin < 0){
System.out.println("Please enter a number greater than 0.");
getBegin = input.nextInt();
}
System.out.println("Enter a number to end with: ");
getEnd = input.nextInt();
while (getEnd < 0 || getEnd < getBegin){
System.out.println("Please enter a number greater than 0. Or greater than your first input.");
getEnd = input.nextInt();
}
MultiplicationTable loop = new MultiplicationTable(getBegin, getEnd);
loop.printTable(getBegin, getEnd);
}
}
public class MultiplicationTable {
public MultiplicationTable(int begin, int end){
printTable(begin,end);
}
void printTable(int begin, int end){
System.out.println(String.format("%-10s %-10s %-10s", "Number", "Squared" , "Cubed"));
for (int i = begin; i <= end; ++i){
System.out.println(String.format("%-10s %-10s %-10s", i, i* i, i*i*i));
}
}
}
答案 0 :(得分:3)
您在MultiplicationTable中的构造函数调用printTable
方法,然后在main方法中再次调用它
答案 1 :(得分:1)
您拨打printTable
方法两次:
1。在MultiplicationTable
类的构造函数中。
public MultiplicationTable(int begin, int end){
printTable(begin,end);
}
2。在main
方法中以及在MultiplicationTable
类的基本实例之后:
MultiplicationTable loop = new MultiplicationTable(getBegin, getEnd);
loop.printTable(getBegin, getEnd);
因此,它执行printTable
方法2次