多重循环的基本使用
1.多重循环的定义:
1.1for可以替换成while循环
2.2循环的嵌套可以有多个,数量不限。
3.3里外层循环执行的次数不相同。
例1.:
object basic18 {
def main(args: Array[String]): Unit = {
for (i<-1 to 5){
println(i)// 这句话会输出多少次?
for (j<-1 to 10){
println(i,j)// 这句话会输出多少次?
}
}
}
}
4.输出特殊图形
例(1):
object basic19 {
def main(args: Array[String]): Unit = {
// println("1")
// println("22")
// println("333")
// println("4444")
// println("55555")
for (i<-1 to 5){// 行: 一共有五行
for (j<-1 to i){// 具体一行中输出什么内容?
print(i)
}
println()// 换行
}
}
}
例(2):
object basic20 {
def main(args: Array[String]): Unit = {
// println("11111")
// println("2222")
// println("333")
// println("44")
// println("5")
for (i<-1 to 5){// 行: 一共有五行
for (j<-i to 5){// 具体一行中输出什么内容?
print(i)
}
println()// 换行
}
}
}
5.求解百鸡百钱问题
object basic21 {
def main(args: Array[String]): Unit = {
for (x<-0 to 20){
for (y<-0 to 33){
var z=100-x-y
// 小鸡的数量一定是3的倍数
if(z%3==0 && 5*x+3*y+z/3==100){
println(x,y,z)
}
}
}
}
}
6.乘法口诀
object basic22 {
def main(args: Array[String]): Unit = {
for (i<-1 to 9){
for (j<-1 to i) {
// println(s"${j}*${i}=${i*j}")
printf("%d*%d=%-3d",j,i,i*j)
// %d 表示一个占位符,表示会以一个整数的格式输出对应的值。
// %-3d 表示一个占位符,表示会以整数的格式输出对应的值,这是数字站三个字符的宽度,左对齐。
}
println()
}
}
}
/**
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/