scala_条件表达式、循环

scala_if条件表达式、while循环、for循环表达式 1、if条件表达式 package com.scala.test.Test object IfTest02 { def main(args: Array[String]): Unit = { val a:Int=60 //这种情况和java语言一样 if(a>60){ println("大于60") }else{ printl... 阅读详情

条件表达式

条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作。scala条件表达式的语法和Java一样。


有返回值的if

与Java不一样的是,

[!NOTE]

  • 在scala中,条件表达式也是有返回值的
  • 在scala中,没有三元表达式,可以使用if表达式替代三元表达式

示例

定义一个变量sex,再定义一个result变量,如果sex等于"male",result等于1,否则result等于0


参考代码

scala> val sex = "male"
sex: String = male

scala> val result = if(sex == "male") 1 else 0
result: Int = 1


块表达式

  • scala中,使用{}表示一个块表达式
  • 和if表达式一样,块表达式也是有值的
  • 值就是最后一个表达式的值

问题

请问以下代码,变量a的值是什么?

scala> val a = {
     | println("1 + 1")
     | 1 + 1
     | }


# 循环

在scala中,可以使用for和while,但一般推荐使用for表达式,因为for表达式语法更简洁




for表达式

语法

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

简单循环

使用for表达式打印1-10的数字


步骤

  1. 生成1-10的数字(提示:使用to方法)
  2. 使用for表达式遍历,打印每个数字

参考代码1

scala> val nums = 1.to(10)                                                              
nums: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 
                                                                                        
scala> for(i <- nums) println(i)                                                                                                                                          


简写方式


参考代码2

// 中缀调用法
scala> for(i <- 1 to 10) println(i)


嵌套循环

使用for表达式,打印以下字符

*****
*****
*****

步骤

  1. 使用for表达式打印3行,5列星星
  2. 每打印5个星星,换行

参考代码

for(i <- 1 to 3; j <- 1 to 5) {print("*");if(j == 5) println("")}


守卫

for表达式中,可以添加if判断语句,这个if判断就称之为守卫。我们可以使用守卫让for表达式更简洁。


语法

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

示例

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


参考代码

// 添加守卫,打印能够整除3的数字
for(i <- 1 to 10 if i % 3 == 0) println(i)


for推导式

  • 将来可以使用for推导式生成一个新的集合(一组数据)
  • 在for循环体中,可以使用yield表达式构建出一个集合,我们把使用yield的for表达式称之为推导式

示例

生成一个10、20、30…100的集合


参考代码

// for推导式:for表达式中以yield开始,该for表达式会构建出一个集合
val v = for(i <- 1 to 10) yield i * 10


while循环

scala中while循环和Java中是一致的


示例

打印1-10的数字


参考代码

scala> var i = 1
i: Int = 1

scala> while(i <= 10) {
     | println(i)
     | i = i+1
     | }


# break和continue
  • 在scala中,类似Java和C++的break/continue关键字被移除了
  • 如果一定要使用break/continue,就需要使用scala.util.control包的Break类的breable和break方法。



实现break

用法

  • 导入Breaks包import scala.util.control.Breaks._
  • 使用breakable将for表达式包起来
  • for表达式中需要退出循环的地方,添加break()方法调用

示例

使用for表达式打印1-100的数字,如果数字到达50,退出for表达式

参考代码

// 导入scala.util.control包下的Break
import scala.util.control.Breaks._

breakable{
    for(i <- 1 to 100) {
        if(i >= 50) break()
        else println(i)
    }
}


实现continue

用法

continue的实现与break类似,但有一点不同:

[!NOTE]

实现break是用breakable{}将整个for表达式包起来,而实现continue是用breakable{}将for表达式的循环体包含起来就可以了



示例

打印1-100的数字,使用for表达式来遍历,如果数字能整除10,不打印

// 导入scala.util.control包下的Break    
import scala.util.control.Breaks._

for(i <- 1 to 100 ) {
    breakable{
        if(i % 10 == 0) break()
        else println(i)
    }
}



打印星星和金字塔的“*” 根据个人输入星星的行数来确定星星和金字塔的方阵,此压缩包有源码!!如果有好的建议请发邮件给我!!我的邮箱1062937618@qq.com 立即下载

相关推荐

【电磁场与电磁波课程设计】基于HFSS的双频微带天线仿真及设计

第五代移动通信技术(5G)的商用已经近在眼前,作为移动通信中最为重要的功能组件,面向5G通信应用的手机天线与基站天线的技术研究与设计成为近年来的热点。随着移动通信中“跳频”“扩频”等通信技术发展,为了满足与多个终端的通信要求,实现多系统共用和收发共用等功能,这就要求天线在不同频段下工作。根据国家工信部的最新规定,5G移动通信的中频段被划定在3.3 GHz-3.5 GHz及4.8 GHz-5.0 GH,面向5G移动通信的天线应具有高增益、小型化、宽频段及高隔离度等技术特征,以满足5G通信的高传输速率、波束智能

weixin_44450575的博客 1万+

Scala学习-for循环

范围循环,集合遍历,循环守卫,循环步长,嵌套循环,循环引入变量

HaveAGoodDay428的博客 318

Comsol单层焊缝焊接数值模拟:温度场与应力场全流程解析

在工程制造领域,有限元模拟是研究焊接热-力行为、优化工艺参数的重要工具。焊接过程涉及强烈的局部加热和快速冷却,材料经历复杂的非线性和相变,必须通过瞬态分析和热-力顺序耦合,才能准确捕捉移动热源作用下的温度演化与应力塑性积累。这一技术广泛应用于压力容器、船舶结构、车辆制造等场景,用以预测残余应力与变形、评估冷裂纹风险,并为工艺设计提供定量支撑。焊接数值模拟能否真正指导实践,关键在于热源校核、随温度变化的材料参数、合理的边界条件与网格策略。单层焊缝作为焊接模拟的基础模型,涵盖了移动热源加载、熔池形成、高温软化与

weixin_30444111的博客 220

scala基础语法,变量声明,输出语句

scala 入门 1、变量声明 1、不可变型 val a = “小明” 2、可变型 var a:String = “小明” var a = “小明” 2、Scala的值类型有7中 同java的8大基本数据类型。少了一个boolean byte short int long double float char 3、for循环 数字循环 ...

你还有好多未完成的梦,你有什么理由停下? 1724

springcloud+nacos+gateway+oauth2小聚会

在微服务工程中,Nacos作为目前主流的注册中心和配置中心,Spring Cloud Gateway作为目前主流的网关,下面引入spring security+oauth2+jwt作为认证和授权中心,进行简单的聊聊。

ldcaws的专栏 2643

实战!在 AMD RX 9070 XT (16G) 上使用原生 Windows ROCm 7.1 部署 ComfyUI + Z-Image-Turbo

本文详细介绍了如何在Windows系统下为AMD Radeon RX 9070 XT显卡配置Z-Image-Turbo AI绘图环境。主要内容包括:安装VS Build Tools和最新显卡驱动,配置Conda Python 3.12环境,安装ROCm 7.1.1 SDK及PyTorch适配版本,部署ComfyUI可视化界面。重点解决了AMD显卡在AI绘图中的适配问题,通过--use-split-cross-attention参数优化显存使用,最终成功搭建了可在消费级16G显存设备上运行的AI绘图环境

qq_33614778的博客 4673

Scala学习记录——3.Scala的表达式和条件式

文章目录1.表达式2. 用表达式定义值和变量3. 表达式块4.语句5. if...else表达式块6. 匹配表达式7.用通配模式匹配8.用模式哨卫匹配9. 用模式变量匹配类型10.循环11. 迭代器哨卫12.嵌套迭代器13.值绑定14. While和Do/While循环15.练习 1.表达式 表达式是返回一个值的代码单元 简单表达式的例子: 更复杂的表达式的例子: 表达式最重要的是它返回的值,...

赈川 2596

医疗数据采集:Python爬虫爬取医学文献与药品信息(2026合规与伦理版)

医疗数据采集不同于爬取新闻或房价,它直接关系到人的生命健康和法律底线。技术层面:优先使用官方 API (PubMed E-utilities, BioThings),避免解析复杂HTML。法律层面:严守“不碰隐私、不破付费、不传谣言”三条红线。伦理层面:保持对生命的敬畏,确保数据的准确性和用途的正当性。在2026年,一个优秀的医疗数据工程师,不是那个能爬取最多数据的人,而是那个能在合规框架下,利用公开数据解决真实医疗问题的人。请务必珍视您的职业生涯和法律责任,切勿以身试法。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 284

【scala】无锁多线程打印1->100

import java.util.concurrent.atomic.AtomicInteger import scala.concurrent.{ExecutionContext, Future} object ThreadTest { def main(args: Array[String]): Unit = { val i = new AtomicInteger(1) def createF(threadContext: Int)(im

Contributor -> Committer 1682

Yolov8-pose关键点检测:训练准备篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据

yolov8-pose关键点检测系列:从数据集标记到生成适合yolo的关键点格式

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 5870

智能车浅谈——手把手让车跑起来(电磁篇)

手把手让你的电磁车上路。

qq_41954556的博客 7万+

打印1-100之间的所有素数及个数,每行输出5个满足条件的数,之间用空格分隔

1 public class Zhishu04{ 2 public static void main(String[] args){ 3 int a,b,d=0,count=0; 4 for(a=1;a<=100;a++){ //定义一个a从1到100 5 for(b=2;b<a;b...

weixin_30466039的博客 9869

21、深入了解SELinux安全系统与/proc文件系统

本文深入探讨了SELinux安全系统与/proc文件系统的原理及实际应用。详细介绍了SELinux的安全上下文、域转换、运行模式、角色管理以及策略查看工具seinfo的使用;同时解析了/proc文件系统的结构与功能,涵盖进程信息查看、系统资源监控及性能优化方法。结合SELinux与/proc的协同应用,提供了系统问题排查流程与安全管理最佳实践,帮助用户提升Linux系统的安全性与稳定性。

ik678901234的博客 61

Scala入门3之【条件表达式、循环】

条件表达式、循环1、条件表达式1.1 if 语句1.2 if...else 语句1.3 if...else if...else 语句1.4 if...else 嵌套语句 1、条件表达式 \quad \quad条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行相应的操作 1.1 if 语句 \quad \quadif 语句有布尔表达式及之后的语句块组成。 语法: if(布尔表达式) { // 如果布尔表达式为 true 则执行该语句块 } 例子: scal

weixin_45666566的博客 818

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

scala条件表达式和循环

条件表达式就是if表达式。scala条件表达式的语法和Java一样。 有返回值的if 参考代码 scala> val sex = "male"sex: String = male​scala> val result = if(sex == "male") 1 else 0result: Int = 1 与Java不一样的是, 在scala中,条件表达式也是有返回值的 在scala中,没有三元表达式,可以使用if表达式替代三元表达式 块表达式 scala中,使用{}表

抓住人生的每一分每一秒,胜过虚度中的每一年每一月!!! 3024

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Scala语法(scala条件表达式__for循环__while循环)

条件表达式 条件表达式就是if表达式。scala条件表达式的语法和Java一样。 有返回值的if 参考代码: scala> val sex = "male" sex: String = male ​ scala> val result = if(sex == "male") 1 else 0 result: Int = 1 与Java不一样的是 在scala中,条件表达式也是有返回...

写的不好之处,请指教 5501

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Scala语法介绍(五):scala条件表达式-for循环-while循环

条件表达式 条件表达式就是if表达式。scala条件表达式的语法和Java一样。 有返回值的if 参考代码: scala> val sex = "male" sex: String = male ​ scala> val result = if(sex == "male") 1 else 0 result: Int = 1 与Java不一样的是 在scala中,条件表达式也是有返回...

4756

Scala入门【条件表达式 循环】

文章目录1.条件表达式1.1 if语句1.2 if ...else语句1.3 if..else if...else语句2.循环2.1 for循环2.1.1 循环集合2.1.2 for循环集合2.1.3 for 循环过滤2.2 while循环2.3 do...while 循环2.4 break语句 1.条件表达式 1.1 if语句 if语句语法格式 if(布尔表达式) { // 如果布尔表达式为 true 则执行该语句块 } object Scala_if_else { def main(args

qq_38247237的博客 401

day02-scala学习之条件表达式及循环

day01([day01-scala学习之基础入门](https://blog.youkuaiyun.com/shenjinrui/article/details/103619257)),我们学习了scala是什么、scala的安装、变量与变量、数据类型、函数的定义,今天学习scala的条件表达式及循环

shenjinrui的博客 192

scala控制结构:条件表达式与循环

今天带大家一起过一遍scala语言的基础知识,涵盖if条件表达式、for循环与while循环。if条件表达式Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或...

大数据之眸 435

Scala函数、条件表达式、循环语句

定义有返回值函数def max(x:Int,y:Int):Int = { if(x>y) x else y }只有一行的情况,可以省略括号。def max(x:Int,y:Int):Int =if(x>y) x else ydef max(x:Int,y:Int) = if(x>y) x else y定义无返回值函数def greeting() = println("hello,wo

吃果冻不吐果冻皮 3886

java for 条件表达式_【Scala教程】(五)Scala条件表达式和循环语句

JAVA中诸如IF条件表达式和FOR、WHILE等循环语句随处可见,SCALA也同样有这些条件表达式和循环语句。IF条件表达式语法if…else 语句 (else可以省略)if(布尔表达式){// 如果布尔表达式为 true 则执行该语句块}else{// 如果布尔表达式为 false 则执行该语句块}if…else if…else 语句if(布尔表达式 1){// 如果布尔表达式 1 为 tru...

weixin_36487018的博客 244

scala中cannot resolve symbol println_scala控制结构:条件表达式与循环

​今天带大家一起过一遍scala语言的基础知识,涵盖if条件表达式、for循环与while循环。if条件表达式Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。新建Test.scala,用于测试我们撰写的代码。cd/usr/local/scalavim./mycode/test.scala请在Test.scala文件中输入以下代码。...

weixin_39603117的博客 254

【scala 表达式】Scala的循环表达式和条件表达式

主要内容: 1、scala 条件表达式 2、scala循环表达式1、Scala的条件表达式package DataStructureAndAlgorithm/** * Created by Administrator on 2017/12/23. */ object Test3ScalaConditional { def main(args: Array[String]) { //

赖德发的博客 3260

scala(1) 函数 条件表达式 循环

scala传统类型: 类:class 默认是public权限 静态类:object 抽象类:abstract class 接口:trait 隐式变换:implicit 变量:var 修饰可变变量,val修饰不可变变量 函数形式 def 函数名(变量名1:变量类型,变量名2:变量类型,……):返回类型={ 函数体 } scala 最后一行就的是返回值,但是也可以用

cxh_python的博客 1059

scala学习笔记-scala的条件表达式、快表达式、循环语句(for,while)

1:scala中的条件表达式 条件表达式就是if表达式,if表达式可以根据给定的条件是否满足,根据条件的结果(真或假)决定执行对应的操作。scala条件表达式的语法和Java一样。 //定义变量x scala> val x =1 x: Int = 1 //if表达式 scala> val y =if(x>0) 1 else -1 y: Int = 1 //支持混合类型表达...

陈同学 397
上一篇: scala_变量、字符串、数据类型
下一篇: scala_方法和函数
Imflash
博客等级 码龄8年 66粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值