各行各业网站建设免费公司取名
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:10
当前位置: 首页 > news >正文
各行各业网站建设,免费公司取名,wordpress创建分站点,开发必备软件第 4 章 流程控制-if-else,Switch,For循环(循环守卫#xff0c;循环步长#xff0c;倒叙打印)#xff0c;While循环#xff0c;多重循环 4.1 分支控制 if-else 让程序有选择的的执行#xff0c;分支控制有三种#xff1a;单分支、双分支、多分支 4.1.1 单分支 1)基本语法… 第 4 章 流程控制-if-else,Switch,For循环(循环守卫循环步长倒叙打印)While循环多重循环 4.1 分支控制 if-else 让程序有选择的的执行分支控制有三种单分支、双分支、多分支 4.1.1 单分支 1)基本语法 if (条件表达式) {执行代码块} 说明当条件表达式为 ture 时就会执行{ }的代码。 2)案例实操 object TestIfElse {def main(args: Array[String]): Unit {println(input age:)var age StdIn.readShort()if (age 18){println(童年)}} } 4.1.2 双分支 1)基本语法 if (条件表达式) { 执行代码块 1 } else { 执行代码块 2 } 2)案例实操 需求输入年龄如果年龄小于 18 岁则输出“童年”。否则输出“成年”。 object TestIfElse {def main(args: Array[String]): Unit {println(input age:)var age StdIn.readShort()if (age 18){println(童年)}else{println(成年)}} } 4.1.3 多分支 1)基本语法 if (条件表达式 1) {执行代码块 1 } else if (条件表达式 2) {执行代码块 2}…… else {执行代码块 n } 2)案例实操 (1)需求 1需求输入年龄如果年龄小于 18 岁则输出“童年”。如果年龄大于 等于 18 且小于等于 30则输出“中年”否则输出“老年”。 object TestIfElse {def main(args: Array[String]): Unit {println(input age)var age StdIn.readInt()if (age 18){println(童年)}else if(age18 age30){println(中年)}else{println(老年)}} } (2)需求 2Scala 中 if else 表达式其实是有返回值的具体返回值取决于满足条件的 代码体的最后一行内容。 bject TestIfElse {def main(args: Array[String]): Unit {println(input age)var age StdIn.readInt()val res :String if (age 18){童年}else if(age18 age30){中年}else{老年}println(res)} } (3)需求 3Scala 中返回值类型不一致取它们共同的祖先类型。 object TestIfElse {def main(args: Array[String]): Unit {println(input age)var age StdIn.readInt()val res:Any if (age 18){童年}else if(age18 age30){中年}else{100}println(res)} } (4)需求 4Java 中的三元运算符可以用 if else 实现 如果大括号{}内的逻辑代码只有一行大括号可以省略。如果省略大括号if 只对最近 的一行逻辑代码起作用。 object TestIfElse {def main(args: Array[String]): Unit {// Java // int result flag?1:0// Scalaprintln(input age)var age StdIn.readInt()val res:Any if (age 18) 童年 else 成年 不起作用println(res)} } 4.2 嵌套分支 在一个分支结构中又完整的嵌套了另一个完整的分支结构里面的分支的结构称为内层。 分支外面的分支结构称为外层分支。嵌套分支不要超过 3 层。 1)基本语法 if(){if() {}else{} } 2)案例实操 需求如果输入的年龄小于 18返回“童年”。如果输入的年龄大于等于 18需要再判 断如果年龄大于等于 18 且小于 30返回“中年”如果其他返回“老年”。 object TestIfElse {def main(args: Array[String]): Unit {println(input age)var age StdIn.readInt()val res :String if (age 18){童年}else {if(age18 age30){中年}else{老年}}println(res)} } 4.3 Switch 分支结构 在 Scala 中没有 Switch而是使用模式匹配来处理。 模式匹配涉及到的知识点较为综合因此我们放在后面讲解。 4.4 For 循环控制 Scala 也为 for 循环这一常见的控制结构提供了非常多的特性这些 for 循环的特性被称为 for 推导式或 for 表达式。 4.4.1 范围数据循环( To ) 1)基本语法 for(i - 1 to 3){print(i ) } println() (1)i 表示循环的变量- 规定 to (2)i 将会从 1-3 循环前后闭合 2)案例实操 需求输出 5 句 宋宋告别海狗人参丸吧 object TestFor {def main(args: Array[String]): Unit {for(i - 1 to 5){println(宋宋告别海狗人参丸吧i)}} } 4.4.2 范围数据循环( Until ) 1)基本语法 for(i - 1 until 3) {print(i ) } println() (1)这种方式和前面的区别在于 i 是从 1 到 3-1 (2)即使前闭合后开的范围 2)案例实操 需求输出 5 句 宋宋告别海狗人参丸吧 object TestFor {def main(args: Array[String]): Unit {for(i - 1 until 5 1){println(宋宋告别海狗人参丸吧 i)}} } 4.4.3 循环守卫 for(i - 1 to 3 if i ! 2) {print(i ) } println() (1)循环守卫即循环保护式(也称条件判断式守卫)。保护式为 true 则进入循环 体内部为 false 则跳过类似于 continue。 (2)上面的代码等价 for (i - 1 to 3){ if (i ! 2) { print(i ) } } 2)案例实操 需求输出 1 到 5 中不等于 3 的值 object TestFor {def main(args: Array[String]): Unit {for (i - 1 to 5 if i ! 3) {println(i 宋宋)}} } 4.4.4 循环步长 1)基本语法 for (i - 1 to 10 by 2) {println(i i) } 说明by 表示步长 2)案例实操 需求输出 1 到 10 以内的所有奇数 for (i - 1 to 10 by 2) { println(i i) } 输出结果 i1 i3 i5 i7 i9 4.4.5 嵌套循环 1)基本语法 for(i - 1 to 3; j - 1 to 3) {println( i i j j) } 说明没有关键字所以范围后一定要加来隔断逻辑 2)基本语法 上面的代码等价 for (i - 1 to 3) {for (j - 1 to 3) {println(i i j j)} } 4.4.6 引入变量 1)基本语法 for(i - 1 to 3; j 4 - i) {println(i i j j) } 说明 (1)for 推导式一行中有多个表达式时所以要加 ; 来隔断逻辑 (2)for 推导式有一个不成文的约定当 for 推导式仅包含单一表达式时使用圆括号 当包含多个表达式时一般每行一个表达式并用花括号代替圆括号如下 for{i - 1 to 3 j 4 - i } {println(i i j j) } 2)案例实操 上面的代码等价于 for (i - 1 to 3) {var j 4 - iprintln(i i j j) } 4.4.7 循环返回值 1)基本语法 val res for(i - 1 to 10) yield i println(res) 说明将遍历过程中处理的结果返回到一个新 Vector 集合中使用 yield 关键字。 注意开发中很少使用。 2)案例实操 需求将原数据中所有值乘以 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) 4.4.8 倒序打印 1)说明如果想倒序打印一组数据可以用 reverse。 2)案例实操 需求倒序打印 10 到 1 for(i - 1 to 10 reverse){println(i) } 4.5 While 和 do..While 循环控制 While 和 do..While 的使用和 Java 语言中用法相同。 4.5.1 While 循环控制 1)基本语法 循环变量初始化 while (循环条件) { 循环体(语句) 循环变量迭代 } 说明 (1)循环条件是返回一个布尔值的表达式 (2)while 循环是先判断再执行语句 (3)与 for 语句不同while 语句没有返回值即整个 while 语句的结果是 Unit 类型() (4)因为 while 中没有返回值所以当要用该语句来计算并返回结果时就不可避免 的使用变量而变量需要声明在 while 循环的外部那么就等同于循环的内部对外部的变量 造成了影响所以不推荐使用而是推荐使用 for 循环。 2)案例实操 需求输出 10 句 宋宋喜欢海狗人参丸 object TestWhile {def main(args: Array[String]): Unit {var i 0while (i 10) {println(宋宋喜欢海狗人参丸 i)i 1}} } 4.5.2 do..while 循环控制 1)基本语法 循环变量初始化; do{ 循环体(语句) 循环变量迭代 } while(循环条件) 说明 (1)循环条件是返回一个布尔值的表达式 (2)do..while 循环是先执行再判断 2)案例实操 需求输出 10 句 宋宋喜欢海狗人参丸 object TestWhile {def main(args: Array[String]): Unit {var i 0do {println(宋宋喜欢海狗人参丸 i)i 1} while (i 10)} } 4.6 循环中断 1)基本说明 Scala 内置控制结构特地去掉了 break 和 continue是为了更好的适应函数式编程推 荐使用函数式的风格解决break和continue的功能而不是一个关键字。Scala中使用breakable 控制结构来实现 break 和 continue 功能。 2)案例实操 需求 1采用异常的方式退出循环 def main(args: Array[String]): Unit {try {for (elem - 1 to 10) {println(elem)if (elem 5) throw new RuntimeException}}catch {case e }println(正常结束循环) } 需求 2采用 Scala 自带的函数退出循环 import scala.util.control.Breaks def main(args: Array[String]): Unit {Breaks.breakable(for (elem - 1 to 10) {println(elem)if (elem 5) Breaks.break()})println(正常结束循环) } 需求 3对 break 进行省略 import scala.util.control.Breaks._ object TestBreak {def main(args: Array[String]): Unit {breakable {for (elem - 1 to 10) {println(elem)if (elem 5) break}}println(正常结束循环)} } 需求 4循环遍历 10 以内的所有数据奇数打印偶数跳过(continue) object TestBreak {def main(args: Array[String]): Unit {for (elem - 1 to 10) {if (elem % 2 1) {println(elem)} else {println(continue)}}} } 4.7 多重循环 1)基本说明 (1)将一个循环放在另一个循环体内就形成了嵌套循环。其中forwhiledo…while 均可以作为外层循环和内层循环。【建议一般使用两层最多不要超过 3 层】 (2)设外层循环次数为 m 次内层为 n 次则内层循环体实际上需要执行 m*n 次。 2)案例实操 需求打印出九九乘法表 object TestWhile {def main(args: Array[String]): Unit {for (i - 1 to 9) {for (j - 1 to i) {print(j * i (i * j) \t)}println()}} }
- 上一篇: 各网站收录做外贸有哪些好的网站有哪些内容
- 下一篇: 各种免费源码共享网站房地产开发建设工程口碑好
相关文章
-
各网站收录做外贸有哪些好的网站有哪些内容
各网站收录做外贸有哪些好的网站有哪些内容
- 技术栈
- 2026年03月21日
-
各网站封面尺寸iis服务器的默认网站
各网站封面尺寸iis服务器的默认网站
- 技术栈
- 2026年03月21日
-
各大网站的名字拍摄宣传片费用明细
各大网站的名字拍摄宣传片费用明细
- 技术栈
- 2026年03月21日
-
各种免费源码共享网站房地产开发建设工程口碑好
各种免费源码共享网站房地产开发建设工程口碑好
- 技术栈
- 2026年03月21日
-
各种网站制作uc投放广告网站要自己做吗
各种网站制作uc投放广告网站要自己做吗
- 技术栈
- 2026年03月21日
-
各种网站制作wordpress多个主体功能合并
各种网站制作wordpress多个主体功能合并
- 技术栈
- 2026年03月21日
