1.for可以替换成while循环。
2.循环的嵌套可以有多个,数量不限。
3.里外层循环执行的次数不相同。
(二)输出特殊图形
例如编写代码打印输出如下图形:
1
22
333
4444
55555
scala
体验AI代码助手
代码解读
复制代码
object Main {
def main(args: Array[String]): Unit = {
println("使用双重循环输出图形:")
// 外层循环控制行数(1到5行)
for (i <- 1 to 5) {
// 内层循环控制每行的数字个数
for (j <- 1 to i) {
print(i) // 打印当前行的数字
}
println() // 每行结束后换行
}
}
}
(三)打印乘法口诀表
1.先观察每个式子的结构
2.再观察每行的结构。
3.使用双层for循环,写出一个矩形结构。
例如
scala
体验AI代码助手
代码解读
复制代码
object Main {
def main(args: Array[String]): Unit = {
println("标准99乘法表:")
println("=" * 50)
for (i <- 1 to 9) { // 外层循环:被乘数
for (j <- 1 to 9) { // 内层循环:乘数
print(f"$j x $i = ${i * j}%2d ")
}
println() // 每行结束后换行
}
}
}
注:使用printf("%d×%d=%-5d",i,j i*j) 可以更整齐地打印。
(四)百鸡百钱问题
1. 通过两层for循环,列出所有组合。这儿有两个变量:公鸡数量,母鸡数量;小鸡数量用100减出即可。
2. 判断是否满足100钱。
3. 判断小鸡数是否是3的整数倍。
scala
体验AI代码助手
代码解读
复制代码
object Main {
def main(args: Array[String]): Unit = {
println("百钱买百鸡问题解法:")
println("公鸡5钱/只,母鸡3钱/只,小鸡1钱/3只")
println("用100钱买100只鸡,问各有多少只?")
println("=" * 50)
var solutions = 0
// 三重循环遍历所有可能
for (cock <- 0 to 100) { // 公鸡数量
for (hen <- 0 to 100) { // 母鸡数量
for (chick <- 0 to 100) { // 小鸡数量
// 检查条件:总数100只,总价100钱
if (cock + hen + chick == 100 &&
cock * 5 + hen * 3 + chick / 3 == 100 &&
chick % 3 == 0) { // 小鸡数量必须是3的倍数
solutions += 1
println(s"解法$solutions: 公鸡$cock只, 母鸡$hen只, 小鸡$chick只")
}
}
}
}
println(s"共有 $solutions 种解法")
}
}