斯卡拉 - 递归打印一盒 H*V 尺寸?



嘿伙计们,我正在学习scala,想创建命令行俄罗斯方块来学习它。

我想打印一个接收两个参数的框,并根据这些参数打印一个表格,因此

printBox(2, 2)
// Output:
**
**
printBox(3,4)
// Output
****
****
****

其中第一个参数是垂直线,第二个参数是列。

我敢打赌我可以用正常的 for 循环来做到这一点,但想知道是否可以使用递归?

尝试递归打印"*":

@tailrec
def printBox(i: Int, j: Int): Unit = {
if (i == 0) return
print("*" * j)
println()
printBox(i - 1, j)
} 
printBox(4,6)

输出:

******
******
******
******

最新更新