一、多重循环的基本使用
格式:
for ( 循环变量 <- 数据集) {
for(){
for(){
}
}
}
说明:
1.for可以替换成while循环。
2.循环的嵌套可以有多个,数量不限。
3.里外层循环执行的次数不相同。
代码示例:
for (i <- 1 to 5){
println(i)
for(j <- 10 to 15){
print(i, j)
}
}
二、输出特殊图形
编写代码打印输出如下图形:
1
22
333
4444
55555
代码如下:
for(i <- 1 to 5){
for(j <- 1 to i){
print(i)
}
println() // 换行
}
运行结果如图:
三、打印乘法口诀表
思路:
1. 先观察每个式子的结构
2. 再观察每行的结构。
3. 使用双层for循环,写出一个矩形结构。
代码如下:
for(i <- 1 to 9){
for(j <- 1 to i){
printf("%d*%d=%-4d",j,i,i*j)
}
println()
}
运行乘法表:
- %d:占位符,会输出一个整数
- %-4d:占位符,会输出一个整数,一共占据4个字符空间的大小,左对齐!
- %4d:占位符,会输出一个整数,一共占据4个字符的空间大小,右对齐!
四、百钱百鸡问题
步骤:
1. 通过两层for循环,列出所有组合。这儿有两个变量:公鸡数量,母鸡数量;小鸡数量用100减出即可。
2. 判断是否满足100钱
3. 判断小鸡数是否是3的整数倍。
- 设公鸡 x, 母鸡 y 只
代码如下:
var k = 0
for(x <- 0 to 20){
for(y <- 0 to 33){
val z = 100 - x - y
// 代入(1)
if(5*x + 3*y + z/3 == 100){
k += 1
println(k, x, y, z)
}
}
}
运行: