多重循环的基本使用
格式
for ( 循环变量 <- 数据集) {
for(){
for(){
}
}
}
说明:
1.for可以替换成while循环。
2.循环的嵌套可以有多个,数量不限。
3.里外层循环执行的次数不相同。
代码示例:
var k = 0
for(i <- 2 to 10) { // 外层循环
println(i)
for (j <- 4 to 20) { // 内层循环
k = k + 1
println(k,i, j)
}
}
案例
案例1
编写代码打印输出如下图形:
1
22
333
4444
55555
for(i <- 1 to 5) {
for(j <- 1 to i) {
print(i)
}
println() // 换行
}
案例2
打印乘法口诀表
for(i <- 1 to 9) {
for(j <- 1 to i) {
//print(s"${j}*${i}=${i*j}")
printf("%d*%d=%-4d",j,i,i*j)
/*
* %d:占位符,会输出一个整数
* %-4d:占位符,会输出一个整数,一共占据4个字符的空间大小,左对齐
* %4d:占位符,会输出一个整数,一共占据4个字符的空间大小,右对齐
*/
}
println() // 换行
}
案例3
百鸡百钱问题
设公鸡x,母鸡y,小鸡100-x-y
var k = 0
for(x <- 0 to 20) {
for(y <- 0 to 33) {
val z = 100 - x - y
if(5*x + 3*y + z/3 == 100){
k += 1
println(k,x,y,z)
}
}
}