for循环控制
* 语法
* 1.to 范围数据循环 [x,y]
* for (i <- 1 to 3){
* printf("%d \n")
* }
* 2.until 范围数据循环 [x,y)
* for (i <- 1 until 3){
* printf("%d \n")
* }
* 3.循环守卫(循环保卫式、条件判断式) 保护式为true则进入循环内部,为false时,跳过
* for (i <- 1 to 3 if i != 2){
* printf("%d \n")
* }
* 等价于
* for (i <- 1 to 3 ) {
* if (i != 2)
* printf("%d \n", i)
* }
* 执行顺序 : 获取变量 -> 条件判断 -> true:进入循环体 false:不执行循环体
* 4.by 循环步长
* for (i <- 1 to 10 by 2){
* printf("%d \n")
* }
* 5.循环嵌套
* for (i <- 1 to 3 ; j <- 1 to 4){
* printf("%d - j \n")
* }
* 6.引入变量
* for (i <- 1 to 3 ; j = i * 2){
* printf("%d - j \n")
* }
* 约定 :
* 当for推导式 只有一个表达式式,常用()
* 当有多个表达式时 常用{} 代替 ()
* 等价于
* for {
* i <- 1 to 3
* j = i * 2}
* {
* printf("%d - j \n")
* }
* 等价于
* for (i <- 1 to 3){
* var j = j = i * 2
* printf("%d - j \n")
* }
* 7.yield for循环的返回值 存储到 Vector
* var id = for (i <- 1 to 3) yield {
* i *2
* var k = 9
* k
* }
* 注意事项 : Vector存储的值为 {} 最后一行的值
* 8.reverse 倒序循环
* for (i <- 1 to 3 reverse){
* printf("%d \n")
* }
* 注意事项 : 必须导包 import scala.language.postfixOps
* */
代码示例
/**
* @author gaocun
* @create 2021-10-17 5:22 PM */
object 循环结构_for_03 {
/* for循环控制
* 语法
* 1.to 范围数据循环 [x,y]
* for (i <- 1 to 3){
* printf("%d \n")
* }
* 2.until 范围数据循环 [x,y)
* for (i <- 1 until 3){
* printf("%d \n")
* }
* 3.循环守卫(循环保卫式、条件判断式) 保护式为true则进入循环内部,为false时,跳过
* for (i <- 1 to 3 if i != 2){
* printf("%d \n")
* }
* 等价于
* for (i <- 1 to 3 ) {
* if (i != 2)
* printf("%d \n", i)
* }
* 执行顺序 : 获取变量 -> 条件判断 -> true:进入循环体 false:不执行循环体
* 4.by 循环步长
* for (i <- 1 to 10 by 2){
* printf("%d \n")
* }
* 5.循环嵌套
* for (i <- 1 to 3 ; j <- 1 to 4){
* printf("%d - j \n")
* }
* 6.引入变量
* for (i <- 1 to 3 ; j = i * 2){
* printf("%d - j \n")
* }
* 约定 :
* 当for推导式 只有一个表达式式,常用()
* 当有多个表达式时 常用{} 代替 ()
* 等价于
* for {
* i <- 1 to 3
* j = i * 2}
* {
* printf("%d - j \n")
* }
* 等价于
* for (i <- 1 to 3){
* var j = j = i * 2
* printf("%d - j \n")
* }
* 7.yield for循环的返回值 存储到 Vector
* var id = for (i <- 1 to 3) yield {
* i *2
* var k = 9
* k
* }
* 注意事项 : Vector存储的值为 {} 最后一行的值
* 8.reverse 倒序循环
* for (i <- 1 to 3 reverse){
* printf("%d \n")
* }
* 注意事项 : 必须导包 import scala.language.postfixOps
* */
def main(args: Array[String]): Unit = {
// 1.to 范围数据循环 [x,y]
for (i <- 1 to 3) {
printf("%d \n", i)
}
// 2.until 范围数据循环 [x,y)
for (i <- 1 until 3) {
printf("%d \n", i)
}
// 3.循环守卫(循环保卫式、条件判断式) 保护式为true则进入循环内部,为false时,跳过
for (i <- 1 to 3 if i != 2) {
printf("%d \n", i)
}
for (i <- 1 to 3) {
if (i != 2)
printf("%d \n", i)
}
// 4.by 循环步长
for (i <- 1 to 10 by 2) {
printf("%d \n", i)
}
// 5.循环嵌套
for (i <- 1 to 3; j <- 1 to 4) {
printf("%d - %d \n", i, j)
}
// 6.引入变量
for (i <- 1 to 3; j = i * 2) {
printf("%d - %d \n", i, j)
}
for {
i <- 1 to 3
j = i * 2
} {
printf("%d - %d \n", i, j)
}
for (i <- 1 to 3) {
var j = i * 2
printf("%d - %d \n", i, j)
}
// 7.yield 循环返回值 存储到 Vector
var id = for (i <- 1 to 3) yield {
i * 2
var k = 9
k
}
print(id)
print("\n")
// 8.reverse 倒序循环
import scala.language.postfixOps
for (i <- 1 to 3 reverse) {
printf("%d \n", i)
}
}
}