【发布时间】:2021-02-02 17:49:51
【问题描述】:
我有以下java代码:
for (int i = 0, j = 0; i < 10 && j < 10 0; i++, j++)
{
System.out.println("i = " + i + " :: " + "j = " + j);
}
输出是:
i = 0 :: j = 0
i = 1 :: j = 1
i = 2 :: j = 2
i = 3 :: j = 3
i = 4 :: j = 4
i = 5 :: j = 5
....
我想在 scala 中做同样的事情,我试过了,但它不起作用:
for (i<- 0 to 9; j <- 0 to 9)
{
println("i = " + i + " :: " + "j = " + j)
}
输出是:
i = 0 :: j = 0
i = 0 :: j = 1
i = 0 :: j = 2
i = 0 :: j = 3
i = 0 :: j = 4
i = 0 :: j = 5
i = 0 :: j = 6
i = 0 :: j = 7
i = 0 :: j = 8
i = 0 :: j = 9
i = 1 :: j = 0
i = 1 :: j = 1
i = 1 :: j = 2
i = 1 :: j = 3
....
我还没有找到将两个变量放在同一级别的方法。 谢谢你的回答。
【问题讨论】:
-
如果两个值都具有相同的值,那么拥有两个值又有什么意义呢?你到底想解决什么?顺便说一句,Scala 没有 for 循环,它有 for 理解,根本不涉及任何突变。
-
@LuisMiguelMejíaSuárez 我不认为这与实际上有两个相同的值有关。我猜这是关于一次迭代两个变量的原则。它可以使用
for和自定义结构或while循环来完成,语法不那么性感(var i, var j, while(...) {... i+=1; j+=1} -
for在 Scala 中不是来自 Java 的 for 循环。在某些情况下,行为可能相似,但不能无脑地替代另一种。 -
@Nebril,是的,你是对的。这是关于一次迭代两个变量的原则。我怎样才能在 scala 中做到这一点?
-
@LuisMiguelMejíaSuárez 好的,我把我想解决的问题分享给你。
标签: scala