简单迭代程序中的Java方法类型错误

时间:2017-05-04 02:41:31

标签: java compiler-errors void

我一直在通过Downey的Think Java工作,并且已经完全陷入了一些使用迭代来打印乘法表的代码。我尝试自己复制程序并收到“'void'类型,此处不允许”错误。我认为这可能是我犯了一些导致错误的错误,但我尝试编译Downey提供的代码并收到相同的编译时错误。以下是代码:

public class Table {

  public static void printRow(int n, int cols) {
  int i = 1;
  while (i <= cols) {
    System.out.printf("%4d", n*i);
    i = i + 1;
}
  System.out.println();
}

 public static void printTable(int rows) {
    int i = 1;
    while (i <= rows) {
      printRow(i, rows);
      i = i + 1;
    }
}
 public static void main(String[] args) {
   System.out.print(printTable(5));
  }
}

如果有人能帮助我理解这里发生的事情会很棒。提前谢谢!

2 个答案:

答案 0 :(得分:1)

删除要打印的调用,然后调用该方法。

public static void main(String[] args) {
    printTable(5); 
}

答案 1 :(得分:1)

printTable方法不返回任何内容。如果需要,您可以在System.out.println方法中添加print语句,而不是在main()中调用printTable,而只需从printTable调用main()方法。我不确定你想再次打印什么,因为printRow已经打印输出。

public class Table {

    public static void printRow(int n, int cols) {
        int i = 1;
        while (i <= cols) {
            System.out.printf("%4d", n*i);
            i = i + 1;
        }
        System.out.println();
    }

    public static void printTable(int rows) {
        int i = 1;
        while (i <= rows) {
            printRow(i, rows);
            i = i + 1;
        }
    }
    public static void main(String[] args) {
        printTable(5);
    }
}