2017-05-04 58 views
0

我一直在努力通过Downey的Think Java,并且已经完全停留在使用迭代打印乘法表的一些代码上。我试着自己复制这个程序,并收到了“这里不允许的”'void'类型的错误。我认为这可能是我犯的一个错误导致了错误,但我试着编译了Downey提供的代码,并且收到了相同的编译时错误。下面是代码:简单迭代程序中的Java方法类型错误

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)); 
    } 
} 

如果有人能帮助我明白是怎么回事,这将是巨大的。提前致谢!

+1

该print语句将永远不会打印,因为printTable()不会返回任何东西 –

+0

所以他的代码是不正确的......我看到 –

回答

1

删除要打印的电话并调用该方法。

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

printTable方法不返回任何东西。如果需要,您可以在printTable方法本身中添加打印语句,而不要在main()中调用System.out.println,而只需从main()调用printTable方法。由于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); 
    } 
}