Scala自定义while循环

Posted 辉常努腻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala自定义while循环相关的知识,希望对你有一定的参考价值。

你用过自定义的while循环码?

  • 真厉害了Scala
package com.li.chapter05

import java.util.concurrent.locks.Condition

object Test12_MyWhile 
  def main(args: Array[String]): Unit = 
    var n = 10

    // 1. 常规的while循环
    while (n >= 1)
      println(n)
      n -= 1
    

    // 2. 用闭包实现一个函数,将代码块作为参数传入,递归调用
    def myWhile(condition: =>Boolean): (=>Unit)=>Unit = 
      // 内层函数需要递归调用,参数就是循环体
      def doLoop(op: =>Unit): Unit = 
        if (condition)
          op
          myWhile(condition)(op)
        
      
      doLoop _
    

    println("=================")
    n = 10
    myWhile(n >= 1)
      println(n)
      n -= 1
    

    // 3. 用匿名函数实现
    def myWhile2(condition: =>Boolean): (=>Unit)=>Unit = 
      // 内层函数需要递归调用,参数就是循环体
      op => 
        if (condition)
          op
          myWhile2(condition)(op)
        
      
    
    println("=================")
    n = 10
    myWhile2(n >= 1)
      println(n)
      n -= 1
    

    // 3. 用柯里化实现
    def myWhile3(condition: =>Boolean)(op: =>Unit): Unit = 
      if (condition)
        op
        myWhile3(condition)(op)
      
    

    println("=================")
    n = 10
    myWhile3(n >= 1)(
      println(n)
      n -= 1
    )

    
    //使用双参数代码块实现自定义while    
    def myWhile4(condition: =>Boolean,op: =>Unit): Unit =
      if (condition)
        op
        myWhile4(condition,op)
      
    

    println("=================")
    n = 10
    myWhile4(n >= 1,
      println(n)
      n -= 1
    )
  


以上是关于Scala自定义while循环的主要内容,如果未能解决你的问题,请参考以下文章

While 循环 - Scala

2020寒假学习进度报告2

scala while循环赋值

在 Scala 中编写 read-while 循环的正确方法是啥?

scala的4中for循环,及while和do while循环

Scala基础学习之for循环和while循环