Scala控制结构

目录

1.if-else选择结构条件表达式

2.for循环结构条件表达式

3.while循环结构条件表达式

4.match模式匹配

5.Scala异常处理结构

6.Scala循环控制

1.break

2.continue


Scala 中常用的控制结构包括 if-elseforwhilematch 等。

1.if-else选择结构条件表达式

if-else 选择结构在 Scala 中和其它语言中的用法类似,例如:

val x = 10
​
if (x > 5) {
  println("x is greater than 5")
} else {
  println("x is less than or equal to 5")
}

在这个示例中,首先定义了一个整型变量 x,然后使用 if-else 结构判断 x 是否大于 5,如果大于 5,输出 "x is greater than 5",否则输出 "x is less than or equal to 5"。需要注意的是,Scala 的 if-else 结构返回的是一个值,可以赋给一个变量。

2.for循环结构条件表达式

在 Scala 中,for 循环可以用于迭代不同种类的集合,如 List、Set、Map 等,语法为:

for (variable <- sequence) {
   statement(s)
}

以下是迭代 List 的示例:

val list = List(1,2,3,4,5)
​
for (num <- list) {
  println(s"element is $num")
}

在这个示例中,首先定义了一个名为 list 的 List,然后使用 for 循环来迭代 list 中的元素,每次迭代输出 list 中的当前元素。

3.while循环结构条件表达式

在 Scala 中,while 循环用于每次检测循环条件是否为真。其语法与其它语言中的 while 循环类似:

while (condition) {
   statement(s)
}

以下是简单的 while 循环示例:

var x = 0
​
while (x < 10) {
  println(s"x is currently $x")
  x += 1
}

在这个示例中,首先定义了一个整型变量 x,然后使用 while 循环检测 x 是否小于 10,如果满足条件,则打印 x 的当前值,并且 x 的值加 1,继续下一次循环。

4.match模式匹配

match 语句用于模式匹配,其语法与其它语言中的 case 语句类似。match 语句可以根据某个值来匹配不同的模式,并执行相应的代码块。

以下是 match 语句的示例:

val i = 5
​
i match {
  case 1 => println("one")
  case 2 => println("two")
  case _ => println("other")
}

在这个示例中,首先定义了一个整型变量 i,然后使用 match 语句进行匹配,如果 i 的值为 1,则输出 "one",如果值为 2,则输出 "two",如果值不是 1 或 2,则输出 "other"。

match 语句还可以与 caseif 结合使用。可以使用 case 语句来匹配某个值,如果匹配成功,则执行相应的代码块;可以使用 if 语句来进一步判断某个条件是否成立,如果成立则执行代码块。

5.Scala异常处理结构

在 Scala 中,异常处理使用 try-catch-finally 语句结构。try 包含需要监视异常的代码段,catch 包含处理异常的代码段,而 finally 则包含此代码段中必须执行的语句。

以下是 try-catch-finally 结构的示例:

try {
  // 监视异常的代码段
} catch {
  case ex: Exception => {
    // 处理异常的代码段
  }
} finally {
  // 必须执行的代码段
}

在上面的示例中,try 包含需要监视异常的代码段,在发生异常时,catch 中定义的代码段会被执行来处理异常。在 catch 代码段中,可以使用 case 模式匹配来匹配具体的异常类型, ex 是捕获到的异常对象的名称。在 finally 包含的代码段中,必须执行无论是否发生异常都会执行的代码段。

以下是一个完整的异常处理结构的示例:

try {
  val a = 10/0
} catch {
  case ex: ArithmeticException => {
    println("ArithmeticException Caught")
  }
  case ex: Exception => {
    println("Other Exception Caught")
  }
} finally {
  println("finally block will always execute")
}

在这个示例中,首先尝试将 10 除以 0,这是一个会产生 ArithmeticException 的操作。当出现异常时,会执行 catch 块。在 catch 代码段中,使用模式匹配来匹配所有可能的异常类型,如果匹配到 ArithmeticException,则输出 "ArithmeticException Caught",否则匹配到其他异常类型,输出 "Other Exception Caught"。无论是否发生异常,finally 中包含的代码段都会执行,并且输出 "finally block will always execute"。

6.Scala循环控制

Scala 中,与Java类似可以用break 和 continue 等关键字用于控制循环的执行,但要注意需要调用名为Breaks的类来实现类似功能。

1.break

break 关键字用于立即终止循环,并将控制转移给循环外的下一段代码。

以下是 break 关键字的示例:

import scala.util.control.Breaks._

breakable {
  for (i <- 1 to 10) {
    if (i == 5) break
    println(i)
  }
}

在这个示例中,使用 breakable 包含整个 for 循环,当变量 i 等于 5 时,使用 break 终止循环并跳出 breakable。

2.continue

continue 关键字用于跳过当前迭代,并执行下一个迭代。

以下是 continue 关键字的示例:

for (i <- 1 to 10) {
  if (i == 5) continue
  println(i)
}

在这个示例中,当 i 等于 5 时,使用 continue 跳过当前迭代,执行下一个迭代。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潜意识^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值