Scala中循环的减少?
使用Scala的第一天和第一次尝试-所以对我放松点!我正试图重写一些旧的Java代码,这只是一个函数,它接受两个数字并打印出从x到y的数字。例如,我有增量函数: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)
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)
对于(iscala>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减量(开始:整数,结束:整数,结束:整数)={
对于(idef 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){.......}