Scala——While和do..While循环控制

本文详细讲解了Scala中的While循环、Do...While循环控制及其中断方法,包括语法、示例和函数式编程替代方案。通过实例演示,了解如何避免使用break和continue,转向更优雅的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

While循环控制

do..While循环控制

循环中断


While循环控制

基本语法

循环变量初始化

while(循环条件){

            循环体(语句)

            循环变量迭代

}

说明:

(1) 循环条件是返回一个布尔值的表达式

(2) while循环是先判断再执行语句

(3)与for语句不同,while语句没有返回值,即整个while语句 的结果是Until类型()

(4) 因为while中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量,而变量需要声明在while循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用for循环。

案例实操 

package Chapter04

object Test_05WhileLoop {
  def main(args: Array[String]): Unit = {

    var a = 1
    while (a <= 10) {
      print("a=" + a + ",")
      a+=1
    }
    println()
    var b = 1
    while (b <= 10) {
      print("b=" + b + ",")
      b+=1
    }



  }

}

运行结果

 

do..While循环控制

基本语法

循环变量初始化;

do {

      循环体(语句)

      循环变量迭代

}while(循环条件)

说明:

(1)循环条件是返回一个布尔值的表达式

(2)do..while循环是先执行,再判断

案例实操

 package Chapter04

object Test_05WhileLoop {
  def main(args: Array[String]): Unit = {

   var c = 1
    do{
      print("c=" + c + ";")
      c += 1
    }while(c<=10)
    println()

    var d = 10
    do{
      print("d=" + d + ";")
      d -= 1
    }while(d>=1)

  }
}

运行结果

循环中断

 基本说明:

Scala内置控制特地去掉了break和continue,是为了更好的适应函数式编程,推荐使用函数式的风格解决break和continue的功能,而不是一个关键字。Scala中使用breakable控制结构来实现break和continue功能。

案例实操

1、采用异常的方式退出循环

2、采用 Scala 自带的函数,退出循环

3、对 break 进行省略   // 把Breaks下所有属性和方法引入import scala.util.control.Breaks._

4、循环遍历 10 以内的所有数据,奇数打印,偶数跳过(continue)

package Chapter04

import scala.util.control.Breaks
import scala.util.control.Breaks._

object Test_06break {
  def main(args: Array[String]): Unit = {
    //1、采用抛异常的方式,退出循环
    try {
      for (i <- 0 until 5){
        if (i ==3)
          throw new RuntimeException
          println(i)
      }
    }catch {
      case e: Exception =>          //什么都不做,只是退出循环
    }
    println("--------------")
    //2、使用Scala中的Breaks类的break方法,实现异常的抛出和捕捉
    Breaks.breakable(
      for (i <- 0 until 5){
        if (i ==3)
          Breaks.break()
        println(i)
      }
    )
    println("----------------")
    breakable(
      for (i <- 0 until 5){
        if (i ==3)
          break()
        println(i)
      }
    )
    println("----------------")
    for (a <- 1 to 10 ){
      if (a % 2 == 1)  println("a=" + a )
    }

    println("----------------")
    for (a <- 1 to 10 ){
      if (a % 2 == 1)  println("a=" + a )
      else  println("contiune")
    }



    println("这是循环外的代码")

  }
}

运行结果

 

第1关:While循环的使用 任务描述 本关任务:编写一个能计算数组平均值最大值的小程序。 相关知识 当我们想要对同样的操作执行多次,就需要使用到循环结构,在 Scala 中循环结构主要分为三种: while 循环; do...while 循环; for 循环。 今天我们来学习第一种循环结构 —— while 循环。 while 循环 首先我们来了解一下 while 循环的逻辑: 图1 如上图1所示,while 循环首先会判断 while 后面的条件是否成立,成立的话执行一次循环体语句序列,执行完成后,继续返回判断条件是否成立,如此反复,直到循环条件不成立,退出循环,它的语法格式如下所示: while( 循环条件表达式 ) { 循环体语句序列 } while 循环使用实例(循环打印 “hello” n 次): import scala.io.StdIn object WhileDemo { def main(args: Array[String]): Unit = { // 定义变量i var i: Int =0 // 读取控制台输入的整数值 var num=StdIn.readInt() // 当 i 小于 num 时,循环输出字符串 hello while(i<num){ println("hello") // i 变量加 1 i=i+1 } } 当控制台输入 3 时,程序执行结果: hello hello hello 注意: Java 里的 i++ ++i 在 Scala 里不起作用,要想起到一样的效果,我们只能使用 i+=1 或者 i=i+1。 编程要求 仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,计算给定的 n 个整数中所有的非负数之,具体要求如下: 接收给定的一行整数(例:4 56 5 -10 10,其中第一个数代表 n,其余数代表具体值); 计算除第一个数之外的所有非负整数之。 测试说明 平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 例: 测试输入: 4 56 5 -10 10 预期输出: 71
最新发布
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值