快学Scala系列(条件语句和循环语句)

本篇是快学Scala的第二篇,讲的是条件语句

流程控制

和我们学习完Java一样,学习完基本的变量之后就要开始学习条件语句。

本篇博客将讲解条件语句和循环语句。

顺序结构

        所谓的顺序结构,Scala和Java是一样的,都是按照从上到下,从左到右的顺序,依次执行,中间没有任何执行和跳转

        先来一个大家习以为常的普通代码,这就是顺序结构

        那么所谓的从左往右的顺序是什么?

        这条语句的结果就是 20我爱你1010

        看一下顺序结构的图解

        选择结构

        选择结构:某些代码的执行需要依赖特定的判断条件,如果判断条件成立,则代码执行,否则,代码不执行。

单分支

        单分支:只有一个判断条件的if语句

        if(关系表达式){

                 //代码 }

        只有一个条件语句,根据条件判断()里面的值是false所以这条语句是不会执行的。

        既然不会执行那么就会执行下一条语句。

        看一下单分支的if条件语句的图解

多分支条件语句

        多分支条件语句,只有两个判断条件的if语句

        if(关系表达式){

        //代码1 }else{

         //代码2 }

        如何执行呢,如果第一个关系表达式的值是True,那么执行代码1,如果第二个结果是flase,那么执行代码块2.

看一下执行图解

多分支条件语句

        多分支条件语句有多个判断条件。

        if(关系表达式){

        //代码1 }else if(关系表达式){

        //代码块2 }else if(关系表达式){

         //代码块3 }else{

         //代码块4 }

1. 先执行关系表达式1, 看其结果是true还是false.

2. 如果是true, 则执行代码1, 分支语句结束. 如果是false, 则执行关系表达式2, 看其结果是true还是false.

3. 如果是true, 则执行代码2. 分支语句结束. 如果是false, 则执行关系表达式3, 看其结果是true还是false.

4. 以此类推, 直到所有的关系表达式都不满足, 执行最后一个else中的代码.

如图

Tips:

  1. 如果Scala中条件里面的代码块只有一行,那么大括号可以省略
  2. 在Scala中,条件表达式也有返回值

        既然学完了这么多,那么我们开始实践一下

        在a,b,c三个值中,找到最大的值。

块表达式

        在Scala中,使用{}表示一个块表达式。

        块表达式也是有值的,就是最后一个值。

        从上面的图片中,我们看到用到了块表达式。

        其中块表达式里面有三块代码,图中显示的返回值就是String.

        也就是块表达式的最后一个值 ”I love you “

循环结构

        在循环结构将会讲到for循环,多层for循环,while循环,do while循环

For循环

        for循环使用和java中有一些差异。

--java中 for(int i = 0;i<= 10;i++){} --Scala中 for(i <- i to 10){}

for循环的格式为

for(i <- 表达式/数组/集合){

//逻辑代码

}

因为以前学过java,现在直接开始进行训练。打印1到10

        上面会打印1到10的数字。

    嵌套for循环

        嵌套for循环中,我们通常第一个代码都是敲九九乘法表

        for(i <- 1 to 9){

         for(j <- 1to i){

         print(s"${i} * ${j} = ${i * j}") } println("") }

for循环守卫

        所谓的for循环守卫就是在for循环的条件语句里面加上if条件语句,

        使用for循环表达式打印1-10之间能够整除3的数字

        for(i <- 1 to 10 if i % 3 ==0){ println(i) }

for循环推导

        所谓的for循环推导就是在for循环中,用yield表达式构建出一个集合。

        var v = for(i <- i to 10) yields i * 10 println(v)

        之前我们说过了,最后返回的是一个集合类型值,所以我们将这个集合赋值给v

        结果就是(1,2,3,4,5,6,7,8,9,10)

While循环

        while循环和之前的没有什么区别。

1. 执行初始化条件.

2. 执行判断条件, 看其结果是true还是false.

3. 如果是false则循环结束.

4. 如果是true则执行循环体.

5. 执行控制条件.

6. 返回第二步, 重复执行.

while(判断条件) {

//循环体

//控制条件

}

while(i < 10){ print(i) i = i+ 1 }

do while循环

        1. 执行初始化条件.

        2. 执行循环体.

        3. 执行控制条件.

        4. 执行判断条件, 看其结果是true还是false.

        5. 如果是false则循环结束.

        6. 如果是true则返回第2步继续执行.

        tips:

        1.do while条件不管判断条件是否成立,循环体都会执行一次。

        2判断条件不成立,不会执行

do{ print(i) i = i+1 }while(i < 10)

实现Break:

        Scala和Java不同的是,Scala中没有break这个关键字,如果要用这个关键字,我们需要导包

       

 import scala.util.control.Breaks.{break, breakable}

下面实现从1到10的打印的时候,碰到5,则退出

breakable{ for(i <- i to 10){ if(i == 5){ break }else{ print(i) } } }

总结:

        今天是小年夜了,小年夜祝大家开开心心。快快乐乐

        今天的学习到此结束了

        希望今年的她更加的优秀和美丽

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值