(一)多重循环的使用
格式:
for ( 循环变量 <- 数据集) {
for(){
for(){
}
}
}
eg1: 1. println(i)会执行几次? 2. println(i,j)会执行几次?
for (i <- 1 to 5){ //外层循环
println(i)
for(j <- 10 to 15){ //内层循环//
print(i, j)
}
}
解答1. println(i)会执行5次? 2. println(i,j)会执行30次?//5x6=30
eg2:编写代码打印输出如下图形:
1
22
333
4444
55555
解答
object bass24 {
def main(args: Array[String]): Unit= {
for (i <- 1 to 5) { // 外层循环
for (j <- 1 to i) { // 每行输入几个数字
print(i)
}
println() //换行
}
}
}
运行结果如下:
eg3:运行一个九九乘法表
object bass30 {
def main(args: Array[String]): Unit= {
for (i <- 1 to 9) { // 外层循环
for (j <- 1 to i) { // 每行输入几个数字
printf("%d×%d=%-4d", j, i, i * j)
/**
* %d :占位符,会输出一个整数
* %-4d :占位符,会输出一个整数,一共占据4个字符的空间大小,左对齐;
* %4d :占位符,会输出一个整数,一共占据4个字符的空间大小,右对齐;
*/
}
println()
}
}
}
运行结果如下:
eg4:百鸡百钱问题
公鸡(鸡翁)1只,价格5钱;
母鸡(鸡母)1只,价格3钱;
小鸡(鸡雏)3只,价格1钱(即1钱买3只小鸡)
用100钱买100只鸡,问公鸡、母鸡、小鸡各有多少只?
解答:
object bass31 {
def main(args: Array[String]): Unit={
//百鸡百钱
var k=0
for(x<-0 to 20){
for(y<-0 to 30){
val z =100 -x -y
//带入(1)
if(5*x +3*y+z/3 ==100){
k+=1
println(k,x,y,z)
}
}
}
}
}
运行结果如下:
*完结撒花!!!! *