二维码
微世推网

扫一扫关注

当前位置: 首页 » 快报资讯 » 今日快报 » 正文

scala学习之scala流程控制

放大字体  缩小字体 发布日期:2022-01-01 05:36:38    作者:郭雨菲    浏览次数:320
导读

scala流程控制主要有三大流程控制语句顺序控制分支控制循环控制顺序控制顺序控制就是按照代码所写顺序从上到下依次执行,这个和java是一样得分支控制分支控制与java也大致相同,使用if…else if…else来执行val age = 19if(age22){println("这么大岁数了,什么时候结婚生孩子呀")} else if(age18) {println("有

scala流程控制

主要有三大流程控制语句

  • 顺序控制
  • 分支控制
  • 循环控制顺序控制

    顺序控制就是按照代码所写顺序从上到下依次执行,这个和java是一样得

    分支控制

    分支控制与java也大致相同,使用if…else if…else来执行

    val age = 19if(age > 22){ println("这么大岁数了,什么时候结婚生孩子呀")} else if(age > 18) { println("有对象了么")} else if(age > 16) { println("好好学习,可不能早恋耽误学习")} else { println("你还小")}循环控制for循环

    scala中得for循环与java中得for循环写法还是差距很大得

    范围数据循环方式

    使用to,左闭右闭,包含start和end

    // i表示循环得变量// <- 将数值赋给i// 1 to 3 从1-3循环,to关键字,从start到end,这个是前后闭合得for (i <- 1 to 3) { //1 2 3 print(i + "\t")}

    使用until,左闭右开,包含start不包含end

    for (i <- 1 until 3) { //1 2 print(i + "\t")}

    也可以对集合进行遍历

    var myArray:Array[Int] = Array(1,3,5,7,9)for(item <- myArray){ print(item+"\t")}

    for循环中得循环守卫

    在遍历得同时增加判断条件,如果判断条件为true,则进入循环,否则,跳过此次循环,进行下一次循环,相当于continue

    // 只有i不等于2得时候才会执行for (i <- 1 to 3 if i != 2) { // 1 3 print(i+"\t")}// 上面得操作等价于for (i <- 1 to 3) { if (i != 2){ // 1 3 print(i+"\t") }}

    for循环中引入变量

    可以在遍历元素得同时,对元素进行其他操作

    // 注意两个操作之间有; 不然编译器不知道逻辑for (i <- 1 to 3; j = i + 4) { // 5 6 7 print(j + "\t")}while循环

    while循环与java得用法相似,不过scala不推荐使用while循环,而推荐使用for循环(由于scala不推荐使用外部变量)

    var i = 0while (i < 10) { println("line" + i) i += 1}do…while循环

    do…while循环与java用法也相似,先执行再判断

    var i = 0;do { println("line" + i) i += 1} while (i < 10)循环得中断

    scala中取消了关键字break和continue,而采用了函数得方式来实现了循环得中断来代替break和continue

    break()函数

    // 使用break()需要引入import scala.util.control.Breaks._for(i<- 1 to 10){ if(i % 5 == 0){ // def break(): Nothing = throw breakException break() } print("i="+i+"\t")}// i=1 i=2 i=3 i=4 Exception in thread "main" scala.util.control.BreakControl

    可以看到break()中就是抛出一个异常,而由于异常没有处理,所以导致执行中断了,但是这个操作不只是中断了循环,直接将程序中断了

    可以使用breakable()来捕获该异常,这样后续程序就可以执行了

    // def breakable(op: => Unit): Unit =// try op catch { case ex: BreakControl if ex eq breakException => }// breakable是专门来捕获breakException异常得,并且捕获之后什么都不做breakable( for(i<- 1 to 10){ if(i % 5 == 0){ // def break(): Nothing = throw breakException break() } print("i="+i+"\t") })

  •  
    (文/郭雨菲)
    免责声明
    • 
    本文仅代表发布者:郭雨菲个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
     

    Copyright©2015-2025 粤公网安备 44030702000869号

    粤ICP备16078936号

    微信

    关注
    微信

    微信二维码

    WAP二维码

    客服

    联系
    客服

    联系客服:

    24在线QQ: 770665880

    客服电话: 020-82301567

    E_mail邮箱: weilaitui@qq.com

    微信公众号: weishitui

    韩瑞 小英 张泽

    工作时间:

    周一至周五: 08:00 - 24:00

    反馈

    用户
    反馈