06_Scala流程控制

### 文章目录

  • [@toc](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [1.流程控制](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**小结:**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**2. Scala中流程控制没有三元运算符**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**2.1 Scala中如果逻辑代码只有一行可以省略花括号**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**小结:**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**3. 循环控制**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**3.1 for控制**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**3.2循环守卫 --> 循环表达式添加逻辑判断**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**3.3 循环步长 --> 表示循环幅度by**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**3.4循环嵌套**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)
  • [**3.5引入变量**](#文章目录 @[toc] 1.流程控制 小结: 2. Scala中流程控制没有三元运算符 2.1 Scala中如果逻辑代码只有一行可以省略花括号 小结: 3. 循环控制 3.1 for控制 3.2循环守卫 --> 循环表达式添加逻辑判断 3.3 循环步长 --> 表示循环幅度by 3.4循环嵌套 3.5引入变量)

1.流程控制

注意几个点:
1.Scala执行过程中都是有返回值的Unit也是一种返回值
2.Unit表示的无返回值,例如Println底层使用的就是Unit返回值
3.条件控制语句也是有返回值的
4.Unit的返回值打印就是()

复制代码
val age = 30
    val result = if (age == 30) {

      println(s"年龄是${age}")
    }

    println(result)			//()
  }//谁会没事怎么写

上述方式没有指定result类型,

所以,以满足条件的最后一行代码的执行结果 作为返回值

如果将println变为 100

那么result就是100

关于result的数据类型;Scala是强数据类型,在编译阶段就需要确定其数据类型;此时数据类型有两种取值,Unit和String;至于取哪一种看家谱图。看其通用类型 Any

**

**

如果指定返回值类型为Unit,那么返回值就是(),不管里面内容是什么

关于强数据类型的流程控制的返回值类型,取多个分支的通用数据类型;

**

**

小结:

--条件控制返回值 为条件成立的最后一行的代码值

--其返回值的类型,取多个分支的通用数据类型;

--数据类型的获取是在编译阶段,非运行阶段,因此取多个分支的通用数据类型;

因为是通用数据类型,即便返回值真的是1,也无法对数据进行加一操作;

**

**

2. Scala中流程控制没有三元运算符

//xxx ? a:b

2.1 Scala中如果逻辑代码只有一行可以省略花括号

复制代码
var c = if (age == 30 ) println(s"${age}为30") else println("age不是30")

    println(c)	//未指定返回值,最后一行为println 所以是Unit类型,值为()

小结:

--scala中没有三元运算符

--scala没有加加减减

3. 循环控制

3.1 for控制

scala只有 forEach循环,没有Java的fori循环

**

**

复制代码
scala中没有双冒号,但是将Java中后者的那个冒号进行修改, <- 表示意思就是将集合中每一个元素指向Object对象;

	var array = 1 to 5				//从1 到5 

    for (elem <- array) {			//直接 array.for回车即可;
      println(elem)
    }

创建集合的方式

复制代码
   var array = 1 to 5					//包含5
			
   var array1 = 1 until 5				//不包含5		until等价Range(1,5)

3.2循环守卫 --> 循环表达式添加逻辑判断

方式:增加if即可在循环后面

复制代码
for (elem <- carray if elem>5) {
      println(elem)
    }

    /**
     * 6
     * 7
     * 8
     * 9
     */

3.3 循环步长 --> 表示循环幅度by

复制代码
  3. 循环幅度
    var array2 = 1 to 100 by 10

    for (elem <- array2) {
      println(elem)
    }

    /**
     * 11
     * 21
     * 31
     * 41
     * 51
     * 61
     * 71
     * 81
     * 91
     */

等价Range(1,100,2) 和python同

3.4循环嵌套

**

**

3.5引入变量

复制代码
// TODO 引入变量
    for(i <- 1 to 3){
      var j =i+1
      println(j)
    }
相关推荐
大衛說32 分钟前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
QQ_21696290961 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
可乐鸡翅yeah_2 小时前
hls.js 内存泄漏实战排查,直播 M3U8 长时间播放异常定位方案
开发语言·javascript·python·django·ecmascript·m3u8·m3u8在线
2601_962203512 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理2 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
IT_陈寒2 小时前
Vue的嵌套组件竟然吃掉了我的事件?
前端·人工智能·后端
来了就未晚3 小时前
Python基础 学习代码存储与命名规范
开发语言·python·学习
布莱克6053 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组
hongmai6668883 小时前
MP2348GTL-Z:这颗24V/4A同步降压芯片,把性能和体积平衡得恰到好处
c语言·开发语言·arm开发·单片机·5g
多弗朗皮卡丘3 小时前
C语言梦开始的地方19:文件操作
c语言·开发语言