06_Scala流程控制

news2024/12/23 10:35:17

文章目录

    • @[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)
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1630514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IntelliJ IDEA 如何启用 JDK 预览特性

IntelliJ IDEA 也可以启用 JDK 的预览特性。 针对项目&#xff0c;选择项目结构。 配置是在语言结构上。 单击语言结构上的 SDK 默认&#xff0c;往下拉&#xff0c;就可以看到针对新版本的选项。 同时还可以看到那些版本是支持新特性预览的&#xff0c;那些版本是不支持新特…

Python 使用相对路径读取文件失败

python open一个问及那时使用绝对路径可以&#xff0c;但是使用相对路径时报错&#xff0c;找不到指定文件 解决步骤如下&#xff1a; 添加Python配置 在新增的配置Json文件添加下图红框这一行

Linux——(关于权限常见的3个问题)

文章目录 1.修改文件或者目录的拥有者和所属组1.1chown指令1.2chgrp指令 2.常见的权限三个问题2.1对应一个目录&#xff0c;如果要进入&#xff0c;需要什么权限&#xff1f;2.2为什么我们创建的文件默认权限不是7772.2.1关于Linux下的权限掩码 2.3文件能否被删除取决于什么2.3…

与Apollo共创生态:Apollo7周年大会自动驾驶生态利剑出鞘

前言 4月22日&#xff0c;百度Apollo在北京车展前夕举办了以“破晓•拥抱智变时刻”为主题的智能汽车产品发布会&#xff0c;围绕汽车智能化&#xff0c;发布了智驾、智舱、智图等全新升级的“驾舱图”系列产品。 1、7周年大会 自2013年百度开始布局自动驾驶&#xff0c;201…

吴恩达2022机器学习专项课程(一) 6.2 逻辑回归第三周课后实验:Lab2逻辑回归

问题预览/关键词 逻辑回归预测分类创建逻辑回归算法Sigmoid函数Sigmoid函数的表示sigmoid输出的结果Numpy计算指数的方法实验python实现sigmoid函数打印输入的z值和sigmoid计算的值可视化z值和sigmoid的值添加更多数据&#xff0c;使用逻辑回归可以正常预测分类![在这里插入图片…

GMSSL编译iOS

一、GMSSL-2.x 国密SDK源码下载&#xff0c;对GMSSL库进行编译生成对应的静态库。执行如下命令&#xff1a; cd到SDK源码目录 cd /Users/xxxx/Downloads/GMSSLV2-master查看SDK适用环境 ./config上图中错误解决方法 使用文本编辑器打开SDK目录下Configure、test/build.info、…

第十五届蓝桥杯省赛第二场C/C++B组C题【传送阵】题解(AC)

解题思路 由于 a a a 数组是一个 1 1 1 到 n n n 的一个排列&#xff0c;那么形成的一定是如下形式&#xff1a; 一定会构成几个点的循环&#xff0c;或者是几个单独的点。 从任意点开始&#xff0c;如果能进入一个循环&#xff0c;一定可以将整个循环的宝藏都拿走&#x…

android room 数据库升级的原则

1.如果新加了一张数据表则什么都不用干直接database那里将数据库版本升1 就可以nichuang 在entities里增加新加的entity ProviderMeta.DB_VERSION 版本号增1 room会自动生成 一个ProviderMeta.DB_VERSION 版本号的json文件 比如实例中升级到70 就会生成一个70.json的文件这是r…

发电厂智能巡检机器人:让发电厂更安全、更高效

在发电厂的众多应用场景中&#xff0c;升压站、化学车间、空冷塔、输煤皮带、综合管廊等&#xff0c;一直以来都是人工巡检的主战场。然而&#xff0c;这些场所环境极为复杂&#xff0c;人工巡检面临着诸多难题&#xff0c;强度大、频率低、间隔长等问题突出。这使得设备在运行…

三星应用TRIZ创新方法的经验分享:探索科技前沿的奥秘

TRIZ&#xff0c;即发明问题解决理论&#xff0c;于1946年被提出。它是一种基于知识和经验的创新方法&#xff0c;旨在帮助人们快速有效地解决各种复杂问题。TRIZ理论包含了大量的创新原理、算法和工具&#xff0c;可以帮助企业快速识别问题、寻找解决方案&#xff0c;并推动创…

【前端】VUE项目创建

在所需文件夹中打开cmd命令行窗口&#xff0c;输入vue ui 进入web可视化界面选择创建新项目 根据需求依次完成下列选择&#xff0c;下列是参考配置&#xff0c;完成后点击创建项目即可 最终显示完成

Opencv | 边缘提取

目录 一. 边缘检测1. 边缘的定义2. Sobel算子 边缘提取3. Scharr算子 边缘提取4. Laplacian算子 边缘提取5. Canny 边缘检测算法5.1 计算梯度的强度及方向5.2 非极大值抑制5.3 双阈值检测5.4 抑制孤立弱边缘 二. 轮廓信息1. 获取轮廓信息2. 画轮廓 一. 边缘检测 1. 边缘的定义…

智慧图书管理|基于SSM+vue的网上服装商城系统(源码+数据库+文档)

智慧图书管理目录 基于SSMvue的网上服装商城系统 一、前言 二、系统设计 三、系统功能设计 1.1 服装列表 1.2 公告信息管理 1.3 公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1…

webpack 入口和出口的最佳实践

入口和出口的最佳实践 {ignore} 具体情况具体分析 下面是一些经典场景 一个页面一个JS 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 源码结构 |—— src|—— pageA 页面A的代码目录|—— index.js 页面A的启动模块|—— ...|—— pageB 页面…

分享一些常用的内外网文件传输工具

内外网隔离后的文件传输是网络安全领域中一个常见而又重要的问题。随着信息技术的快速发展&#xff0c;网络安全问题日益凸显&#xff0c;内外网隔离成为了许多企业和组织保护内部信息安全的重要手段。然而&#xff0c;内外网隔离后如何有效地进行文件传输&#xff0c;成为了摆…

【sgSearch_v2】自定义组件:常用搜索栏筛选框组件(展开后更多搜索内容悬浮于其他组件之上,不影响整体布局高度)。

sgSearch_v2源码 <template><div:class"$options.name":expand"expandSearch":showCollapseBtn"showCollapseBtn"keyup.enter"(expandSearch true), $emit(keyupEnter, {})"><ul class"search-list">&l…

第一阶段--Day1--什么是网络安全?网络安全常用术语

目录 1. 什么是网络安全&#xff1f; 信息系统&#xff08;Information System&#xff09; 信息系统安全三要素&#xff08;CIA&#xff09; 网络空间安全管理流程 网络安全管理 2. 网络安全的常用术语 3. 网络安全形势 4. 中国网络安全产业现状 1. 什么是网络安全&am…

Leetcode—1256. 加密数字【中等】Plus(bitset、find_first_not_of、erase)

2024每日刷题&#xff08;120&#xff09; Leetcode—1256. 加密数字 实现代码 class Solution { public:string encode(int num) {string ans;num 1;while(num ! 0) {ans to_string(num & 1);num num >> 1;}if(ans.empty()) {return "";} else {stri…

解决VMware启动异常

问题1&#xff1a;该虚拟机似乎正在使用中。如果该虚拟机未在使用&#xff0c;请按“获取所有权(T)”按钮获 取它的所有权。否则&#xff0c;请按“取消(C)”按钮以防损坏。 解决步骤&#xff1a; 按弹框提示的配置文件目录下删除后缀为lck的文件&#xff08;lock&#xff09;。…

上位机图像处理和嵌入式模块部署(树莓派4b之远程vnc桌面访问)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于很多嵌入式开发比较精通的同学来说&#xff0c;使用命令行和开发板之间进行沟通是他们完全能够接受的一种开发方式。但是对于更多的朋友来说&a…