1.5 掌握Scala内建控制结构(一)

news2024/11/23 2:26:55

一、条件表达式

(一)语法格式

if (条件) 值1 else 值2

(二)执行情况

条件为真,结果是值1;条件为假,结果是值2。如果if和else的返回结果同为某种类型,那么条件表达式结果也是那种类型,否则就是Any类型
Scala的条件表达式有点类似于Java的条件运算符

(三)案例演示

任务1、根据输入值的不同进行判断
在这里插入图片描述
当然也可以在一个表达式中进行多次判断
在这里插入图片描述
可以将上述条件表达式改造成嵌套的选择结构,可读性倒是提高了,但是简洁性降低了
在这里插入图片描述
任务2、编写Scala程序,判断奇偶性
打开Scala项目ScalaDemo,创建net.huawei.day02包,在包里创建Example01对象

package net.huawei.day02

import scala.io.StdIn

/**
 * 功能:判断奇偶性
 * 作者:华卫
 * 日期:2023年02月22日
 */
object Example01 {
  def main(args: Array[String]): Unit = {
    print("n = ")
    val n = StdIn.readLine.toInt
    if (n % 2 == 0)
      println(n.toString + "是偶数~")
    else
      println(n.toString + "是奇数~")
  }
}

运行程序,查看结果
在这里插入图片描述
在这里插入图片描述
利用if结构具有返回值的特性,改写程序成为函数式风格

package net.huawei.day02

import scala.io.StdIn

/**
 * 功能:判断奇偶性
 * 作者:华卫
 * 日期:2023年02月22日
 */
object Example01 {
  def main(args: Array[String]): Unit = {
    print("n = ")
    val n = StdIn.readLine.toInt
    val result = if (n % 2 == 0) n.toString + "是偶数~" else n.toString + "是奇数~"
    println(result)
  }
}

运行程序,查看结果
在这里插入图片描述

二、块表达式

(一)语法格式

{语句组}

(二)执行情况

需要注意的是,Scala中的返回值是最后一条语句的执行结果,而不需要像Java一样单独写return关键字。如果表达式中没有执行结果,就返回一个Unit对象,类似Java中的void。

(三)案例演示

语句块最后一句的值就是整个块表达式的结果
在这里插入图片描述
语句块最后一句没有执行结果,那么块表达式结果就是Unit
在这里插入图片描述

三、for循环

单重for循环

1、语法格式
for (变量 <- 集合或数组 (条件)) {
语句组
}
2、执行情况
表示将集合或数组中的每一个值循环赋给一个变量
3、案例演示
任务1:输出1到10
两种方式实现,一种使用Range类,一种使用to运算符
在这里插入图片描述
任务2、遍历字符串,输出每个字符
按索引取字符串的每个字符(传统for循环)
在这里插入图片描述
任务3、计算 1 + 2 + 3 + … + 100
注意sum必须定义为var型变量
在这里插入图片描述

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

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

相关文章

微信小程序开发20__第三方UI组件 ColorUI 的应用

ColorUI 有鲜艳的高饱和色彩&#xff0c; 是专注视觉的微信小程序组件库。 gitee 网址 &#xff1a;ColorUI: 鲜亮的高饱和色彩&#xff0c;专注视觉的小程序组件库 一 使用方法 在微信小程序中使用 ColorUI 需要两个步骤&#xff1a; 第一步&#xff1a; 下载源码解压…

【Linux】详解环境变量与命名行参数

目录 环境变量了解PATH什么是环境变量&#xff1f;使用环境变量系统自带环境变量示例 命名行参数argc与argvenvenviron 环境变量 了解PATH 提出问题&#xff1a; 我写的可执行程序&#xff0c;与系统的可执行程序都是可执行程序&#xff0c;那么为什么执行系统的可执行程序…

Dokcer安装---Mqtt

1、拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6 老版本 2、运行 docker run -it --name emq -p 18083:18083 -p 1883:1883 -p 8084:8084 -p 8883:8883 -p 8083:8083 -d registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6 –name 容器…

佩戴舒适度极好的蓝牙耳机推荐,久戴不累的蓝牙耳机分享

​听歌、刷剧、游戏&#xff0c;运动、吃饭、睡觉等&#xff0c;要说现在年轻人除了离不开手机之外&#xff0c;还有就是蓝牙耳机了&#xff01;当然&#xff0c;随着蓝牙耳机的快速发展&#xff0c;各种各样的蓝牙耳机都有&#xff0c;导致很多人不知道耳机怎么选了&#xff0…

管理类联考——逻辑——知识篇——第五章 假言命题(必考)(最重要的基础)

第五章 假言命题&#xff08;必考&#xff09;&#xff08;最重要的基础&#xff09; 假言命题&#xff1a;陈述某一事物情况是另一件事物情况的条件的命题。假言命题中的充分条件假言命题和必要条件假言命题是联考逻辑最重要的必考考点。1 *本质为&#xff1a;充分必要&#…

Vue中如何进行分布式鉴权与认证

Vue中如何进行分布式鉴权与认证 随着前后端分离的趋势不断加强&#xff0c;前端应用的安全性问题也日益受到关注。在Vue应用中&#xff0c;我们通常需要实现分布式鉴权和认证&#xff0c;以确保用户的安全性和数据的保密性。本文将介绍在Vue中如何进行分布式鉴权与认证。 什么…

闲聊下最近哦

随便聊聊 聊聊最近工作或日常上一家公司一直比较忙,人也比较懒,一直没有写博客,最近换了下工作,争取坚持写博客吧 聊聊最近工作或日常 上一家公司一直比较忙,人也比较懒,一直没有写博客,最近换了下工作,争取坚持写博客吧 上家公司做了几年多了,上半年离职换了个工作,现阶段这…

《六》TypeScript 中的泛型

泛型&#xff1a;宽泛的类型&#xff0c;其实就是类型的参数化&#xff0c;让类型像参数一样&#xff0c;不预先指定&#xff0c;而是在使用的时候再让别人传入进来。 在定义函数、类或者接口时&#xff0c;如果遇到类型不明确的时候&#xff0c;就可以使用泛型。 平常开发中可…

Qt5.15.10+msvc2019_x86+qwebengine(含mp4)源码编译

系统要求: win10 64bit 英文版(或者把“区域”->“管理”->“非Unicode程序中所使用的当前语言”->改为"英语(美国)") 内存16g够用,cpu性能越高越好,硬盘在安装环境、下载源码后,至少还有100g可用空间 下载源码: https://download.qt.io/archiv…

Hive SQL:DDL建库 建表

Hive SQL:DDL建库 / 建表 &#x1f418;Hive SQL数据库 建库 数据库 在Hive中&#xff0c;默认的数据库叫做default&#xff0c;存储数据位置位于HDFS&#xff1a;/user/hive/warehouse 用户自己创建的数据库存储位 &#xff1a;/user/hive/warehouse/database_name.db 创…

linux文件的增量备份 Shell命令脚本

简单的增量备份脚本&#xff0c;自己用到了之后把部分择出来记录一下&#xff0c;方便日后查阅 # 昨天对应的月份 n_mon$(date -d -1day %Y%m) # 组合文件夹路径 path/home/admin/"$n_mon" # 昨天的0点作为增量备份起始时间&#xff0c;今日0点作为截止时间 s_date$…

web3带大家简单建立区块链概念

上文 Web3.0概念我们简单说了说 web3的概念 可能很多人还是会感觉 太概念了 然后 这一篇 我们再了解一下区块链 因为 web3.0的一个构建基础 就是 区块链 有了区块链 才衍生出了后面的很多东西 去中心化的身份 去中心化的应用 dapp 其实最终的目的 也是带着大家去构建起自己的 …

RK3588 MPP解码句柄泄露问题记录

1. 问题背景 最近在用瑞芯微3588开发板做一个视频处理的项目&#xff0c;前两天拷机发生了闪退&#xff0c;弹出的问题是“打开文件过多”&#xff0c;经过初步排查定位到是MPP硬解码部分出的问题。 我的MPP解码部分主要用来读取网络相机rtsp流&#xff0c;主要参考了一个git…

智能应急照明及疏散指示系统在实际项目中的应用和其实际意义 安科瑞 许敏

摘要&#xff1a;近年来&#xff0c;随着照明技术的迅速发展&#xff0c;高大而复杂的智能建筑日益增多&#xff0c;消防应急照明法规和标准不断健全和完善&#xff0c;消防应急灯具产品品种不断增多&#xff0c;性能不断改进&#xff0c;技术水平有很大提高&#xff0c;得到了…

这就是艺术,优雅的二维码生成器「GitHub 热点速览」

作者&#xff1a;HelloGitHub-小鱼干 平时如果没有需要一般那团黑乎乎的二维码&#xff0c;估计路过的人看见第一眼就不会再看第二眼。但是假若&#xff0c;它是个帅哥靓妹&#xff0c;估计就不同了&#xff0c;更别提像是艺术画一样&#xff0c;将编码图案融入到画里的二维码生…

CEETRON如何赋能航空航天领域打造WEB CAE后处理系统?

CAE&#xff08;计算机辅助工程&#xff09;在航空航天领域具有广泛的应用&#xff0c;它在航空航天器的设计、性能评估和安全分析等方面开发坚持重要的作用。 本文主要探讨Ceetron集合CAE在航空航天领域中的应用价值&#xff0c;以及对CAE在航空航天领域应用的更详细描述&…

【粉笔刷题】第二回

在JavaScript中下面选项&#xff0c;关于this描述正确的是&#xff08;&#xff09; A在使用new实例化对象时, this指向这个实例对象 B当对象调用函数或者方法时,this指向这个对象。 C在函数定义时,this指向全局变量 D在浏览器下的全局范围内&#xff0c;this指向全局对象this表…

Django高级扩展之中间件

中间件是Django请求&#xff0f;响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统&#xff0c;用于全局改变Django的输入或输出。每个中间件组件负责实现一些特定的功能。例如&#xff0c;Django包含一个中间件组件AuthenticationMiddleware&#xff0c;它使用会话将…

光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型

光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型及程序资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87910311 模型简介&#xff1a; 建议使用MATLAB21b及以上版本打开&#xff01; 光伏阵列表面被局部遮挡时会产生热斑效应。为了防止太阳电池因热…

如何在Microsoft Excel中使用TRUNC函数

Excel 中有多种删除小数点和缩短数值的方法。在本文中,我们将解释如何使用 TRUNC 函数,以及它与其他技术的不同之处。 TRUNC函数 什么是 TRUNC 功能如何使用 TRUNC 函数从日期时间戳中删除时间什么是 TRUNC 功能 TRUNC 函数将数字截断为指定的小数位数。使 TRUNC 不同于其他…