Scala:for循环直到条件

Posted

技术标签:

【中文标题】Scala:for循环直到条件【英文标题】:Scala: for loop until condition 【发布时间】:2013-12-09 19:39:10 【问题描述】:

如何运行for 直到满足条件?除了使用scala.util.control.Breaks.break,是否可以测试for 中的条件?

for(line <- source.getLines) 
        if (line.equals("")) scala.util.control.Breaks.break
        Console print "Message> "
        dataWriter.write(line, InstanceHandle_t.HANDLE_NIL)
      
     catch  
        case e: IOException =>

【问题讨论】:

你应该像这样使用takeWhilefor(line &lt;- source.getLines.takeWhile_ != "") 谢谢@senia!使用!= 来比较Strings 是否安全,而不是!equals("") 是的。在scala 中,==equals 的空安全等效项(它调用equals)。还有另一个用于引用相等的运算符(你不需要它)。 【参考方案1】:

试试takeWhile

for(line <- source.getLines.takeWhile(!_.isEmpty)) 
  Console print "Message> "
  dataWriter.write(line, InstanceHandle_t.HANDLE_NIL)

source.getLines.takeWhile(!_.isEmpty).foreach 
  line => 
   Console print "Message> "
   dataWriter.write(line, InstanceHandle_t.HANDLE_NIL)

【讨论】:

以上是关于Scala:for循环直到条件的主要内容,如果未能解决你的问题,请参考以下文章

for循环执行顺序?

两个for循环执行顺序

scala的基础数据类型&if条件表达式&for循环

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

for 循环与嵌套

for循环