Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中循环的减少?_Scala - Fatal编程技术网

Scala中循环的减少?

Scala中循环的减少?,scala,Scala,使用Scala的第一天和第一次尝试-所以对我放松点!我正试图重写一些旧的Java代码,这只是一个函数,它接受两个数字并打印出从x到y的数字。例如,我有增量函数: def increment(start: Int, finish: Int) = { for (i <- start to finish) { println("Current value (increasing from "+start+" to "+finish+") is "+i)

使用Scala的第一天和第一次尝试-所以对我放松点!我正试图重写一些旧的Java代码,这只是一个函数,它接受两个数字并打印出从x到y的数字。例如,我有增量函数:

    def increment(start: Int, finish: Int) = {
      for (i <- start to finish) {
         println("Current value (increasing from "+start+" to "+finish+") is "+i)
      }
    }
def增量(开始:整数,结束:整数)={
为了
要排除第二条边界,请使用
直到

for (i <- (6 until 3 by -1)) {println ("i: " + i)}
i: 6
i: 5
i: 4
用于(i=停止))
def next:Int={
val res=当前值
如果(启动<停止)电流+=1,否则电流-=1
物件
} 
}
val it=新的FromToIterator(3,6)
val ti=新的FromToIterator(6,3)
对于(i
scala>def减量(开始:Int,结束:Int)={
|对于(i)减量(10,1)
当前值(从10降至1)为10
当前值(从10降至1)为9
当前值(从10降至1)为8
当前值(从10降至1)为7
当前值(从10降至1)为6
当前值(从10降至1)为5
当前值(从10降至1)为4
当前值(从10降至1)为3
当前值(从10减少到1)为2
当前值(从10减少到1)为1

以下是一个全局递增/递减解决方案,其灵感来自:

def goThrough(开始:Int,结束:Int)={
val d=if(开始时从高数值到低数值为-1(使用其他负或正步骤切换以更改步进)

def减量(开始:Int,结束:Int)={
对于(i
对象测试扩展应用程序{
def减量(开始:整数,结束:整数,结束:整数)={
对于(i
def printInDecreasingOrder)(开始:Int,结束:Int){
如果(开始>结束){

对于(i这种方式,您可以在Scala中使用递减for循环。

    object Example extends App {


      for(i <- 20 to 2 by -2){


        println("Value of i = "+ i)

      }
    }
------------------
O/P
------------------
Value of i = 20
Value of i = 18
Value of i = 16
Value of i = 14
Value of i = 12
Value of i = 10
Value of i = 8
Value of i = 6
Value of i = 4
Value of i = 2
对象示例扩展应用程序{

如果你这样做的话,我想给这个答案增加一点

for(j <- finish to start){......}

用于(j非常感谢。我现在不知道我怎么看不到这一点,因为我肯定没有直接思考!还有一件事-对不起。我如何在println中获得迭代器的值?
开始到结束时间-1
将返回一个可以迭代的
范围。是否仍有以函数形式编写此函数?
dec(start:Int,finish:Int)={start to finish by-1};dec(10,1)。foreach(i=>println(“递减”+i));
谢谢。我不知道
by-X
存在
class FromToIterator (start: Int, stop: Int) extends Iterator [Int] { 
  var current = start
  //                        3       6       3         6         6       3       6         3
  def hasNext : Boolean = ((start < stop && current <= stop) || (start > stop && current >= stop)) 
  def next: Int = { 
    val res = current
    if (start < stop) current += 1 else current -= 1
    res
  } 
}
val it = new FromToIterator (3, 6)
val ti = new FromToIterator (6, 3)

for (i <-it) println (i)
for (i <-ti) println (i)
scala>def decrement(start: Int, finish: Int) = {
    |  for (i <- start to finish by -1)
    |   println("Current value (decreasing from "+start+" to "+finish+") is "+i);
    | }
decrement: (start: Int,finish: Int)Unit

scala> decrement(10, 1)
Current value (decreasing from 10 to 1) is 10
Current value (decreasing from 10 to 1) is 9
Current value (decreasing from 10 to 1) is 8
Current value (decreasing from 10 to 1) is 7
Current value (decreasing from 10 to 1) is 6
Current value (decreasing from 10 to 1) is 5
Current value (decreasing from 10 to 1) is 4
Current value (decreasing from 10 to 1) is 3
Current value (decreasing from 10 to 1) is 2
Current value (decreasing from 10 to 1) is 1
def goThrough(start: Int, finish: Int) = {     
  val d = if(start<=finish) 1 else -1
  for (i <- start to finish by d) {
    println("Current value (increasing from "+start+" to "+finish+") is "+i)
  } 
}
def decrement(start: Int, finish: Int) = {
  for (i <- start to finish by -1) {
     println("Current value (decreasing from "+start+" to "+finish+") is "+i)
  }
}
object Test extends App{

  def decrement(start: Int, finish: Int,dec :Int) = {
    for (i <- Range(start,finish,dec)) {
      println("Current value (decreasing from "+start+" to "+finish+") is "+i)
    }
  }

  decrement(5,0,-1)
}
def printInDecreasingOrder(start : Int, end : Int){
  if(start > end ){
     for(i <- start to end by -1){
       println(s"Current value (decreasing from $start to $end) is $i")
     }
   }else{
     println("first num is smaller than second")
   }
}
    object Example extends App {


      for(i <- 20 to 2 by -2){


        println("Value of i = "+ i)

      }
    }
------------------
O/P
------------------
Value of i = 20
Value of i = 18
Value of i = 16
Value of i = 14
Value of i = 12
Value of i = 10
Value of i = 8
Value of i = 6
Value of i = 4
Value of i = 2
for(j <- finish to start){......}
for(j <- finish to start by -1){.......}