当前位置: 首页 > news >正文

scala-stwitch分支结构

for循环控制
head = 35  # 总头数
foot = 94  # 总脚数

for chicken in range(head + 1):
    rabbit = head - chicken
    if 2 * chicken + 4 * rabbit == foot:
 
1. 首先定义了变量  head  表示总头数, foot  表示总脚数。
 
2. 使用  for  循环,循环变量  chicken  表示鸡的数量,范围从  0  到  head 。
 
3. 在循环内部,计算出兔的数量  rabbit  为  head - chicken 。
 
4. 通过判断  2 * chicken + 4 * rabbit == foot  是否成立,来确定当前的鸡和兔的数量是否满足总脚数的条件。如果满足,则输出鸡和兔的数量。

范围数据循环(to)
for(i <- 1 to 3){
print(i + " ")
}
println()
i是循环变量 <- 规定to
i从1-3循环 前后闭合
案例实操:输出五句Scala
object TestFor {
def main(args: Array[String]): Unit =
{ for(i <- 1 to 5){ println("scala "+i) }
}
}
范围数据循环(until)
for(i <- 1 until 3) {
print(i + " ")
}
println()
i是从1到3-1进行循环 前闭合后开
案例实操:输出五句Scala
object TestFor {
def main(args: Array[String]): Unit =
{ for(i <- 1 until 5 + 1){
println("scala" + i)
              }
      }
}
循环守卫

for(i <- 1 to 3 if i != 2)
{ print(i + " ")
}
println()
循环守卫,即循环保护式(也称条件判断式,守卫)。保护式为 true 则进入循环体内部,为false 则跳过,类似于continue
案例实操:输出1-5中不等于3的值
object TestFor {
def main(args: Array[String]): Unit =
{ for (i <- 1 to 5 if i != 3) {
println(i + "张三丰")
                }
       }
}
循环步长

for (i <- 1 to 10 by 2)
{ println("i=" + i)
}
by是步长
案例实操:1-10中所有的奇数
for (i <- 1 to 10 by 2)
{ println("i=" + i)
}
输出结果
i=1 i=3 i=5 i=7 i=9 
嵌套循环

for(i <- 1 to 3; j <- 1 to 3)
{ println(" i =" + i + " j = " + j)
}
范围后面一定要加;来隔绝逻辑
引入变量

for(i <- 1 to 3; j = 4 - i)
{ println("i=" + i + " j=" + j)
}
for 循环中有多个表达式时,要加 ; 来隔断逻辑
for 推导式有一个不成文的约定:当 for 推导式仅包含单一表达式时使用圆括号, 当包含多个表达式时,一般每行一个表达式,并用花括号代替圆括号
案例实操:
for (i <- 1 to 3)
{ var j = 4 - i
println("i=" + i + " j=" + j)

循环返回值

val res = for(i <- 1 to 10) yield i
println(res)
将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字。
案例实操:将原数据中所有值乘以 2,并把数据返回到一个新的集合中
object TestFor {
def main(args: Array[String]): Unit =
{ var res = for(i <-1 to 10) yield
     {
       i * 2
     }
     println(res)
     }
}
输出结果: Vector(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
倒序打印

如果想倒序打印一组数据,可以用 reverse。
案例实操:倒序打印10-1
for(i <- 1 to 10 re
verse){ println(i)
}
While 循环控制

循环变量初始化
while
(循环条件) {
循环体(语句)
循环变量迭代
}
说明: 循环条件是返回一个布尔值的表达式
while 循环是先判断再执行语句
与 for 语句不同,while 语句没有返回值
do..while 循环控制

do{
循环体(语句)
循环变量迭代
} while(循环条件)
说明 循环条件是返回一个布尔值的表达式 do..while 循环是先执行,再判断 
循环中断

Scala 内置控制结构去掉了 break 和 continue,Scala 中使用breakable 控制结构来实现 break 和 continue 功能。

 

相关文章:

  • 【从0到1学Docker】Docker学习笔记
  • Java常用工具算法-1--哈希算法(MD5,SHA家族,SHA-256,BLAKE2)
  • 3万字长文详解Android AIDL 接口设计
  • 1.oracle修改配置文件
  • 区间预测 | MATLAB实现QRBiGRU门控循环单元分位数回归时间序列区间预测
  • 【SQL性能优化】预编译SQL:从注入防御到性能飞跃
  • 【复活吧,我的爱机!】Ideapad300-15isk拆机升级:加内存条 + 换固态硬盘 + 换电源
  • 腾讯位置服务学习记录
  • 汇编学习之《变址寄存器》
  • 下载安装mingw配置C++编译环境 及C环境
  • 深入理解 YUV 颜色空间:从原理到 Android 视频渲染
  • 【前端】创建一个vue3+JavaScript项目流程
  • 指纹浏览器技术解析:如何实现多账号安全运营与隐私保护
  • 横扫SQL面试——时间序列分组与合并(会话划分)问题
  • 3.27-1 pymysql下载及使用
  • win10之mysql server 8.0.41安装
  • 从像素到二值化:OpenCV图像处理实战入门指南
  • 虫洞数观系列二 | Python+MySQL高效封装:为pandas数据分析铺路
  • Spring Boot中常用内嵌数据库(H2、HSQLDB、Derby)的对比,包含配置示例和关键差异总结
  • PyTorch量化进阶教程:第一章 PyTorch 基础
  • 外贸网站建设流程/企业网站seo案例
  • 网站建站那个好/什么是网络营销平台
  • 深圳建设工程网/北京seo服务行者
  • 推广软件下载平台/长沙网站托管seo优化公司
  • 车险保险网站/友情链接多少钱一个
  • 网页与网站/seo课程培训