循环打印两次java

时间:2016-02-06 06:16:59

标签: java for-loop

我不知道为什么我的循环打印两次。我有两个单独的类,我已经创建了无论出于什么原因,我无法弄清楚为什么它打印两次到控制台。我不确定是不是因为我在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));
    }

}

}

2 个答案:

答案 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次