错误:';'预计会发现'其他'

时间:2013-03-25 08:40:38

标签: scala

我写了以下简单的代码:

def Commas(n: Long) = {
  if (n >= 1000)
    Commas(n/1000)
    print(","+ n%1000/100 + n%100/10 + n%10)
  else
    print(n%1000/100 + n%100/10 + n%10)
}

虽然对我来说似乎是对的,但是有一个错误。上面的代码出了什么问题?

5 个答案:

答案 0 :(得分:5)

If...else...语法需要一个语句。您可以使用周围的代码块来确保代码按预期工作。类似的东西(还要注意你必须指定返回类型为Unit或只删除=标志):

def Commas(n: Long) {
  if (n >= 1000) {
    Commas(n/1000)
    print(","+ n%1000/100 + n%100/10 + n%10)
  }
  else 
    print(n%1000/100 + n%100/10 + n%10)
}

答案 1 :(得分:1)

试试这个:

def Commas(n: Long) = {
if (n >= 1000) {
    Commas(n/1000)
    print(","+ n%1000/100 + n%100/10 + n%10);
}
 else {
    print(n%1000/100 + n%100/10 + n%10);
}

答案 2 :(得分:0)

虽然,你有两个关于如何修复它的解决方案,但这就是为什么它没有像你期望的那样工作:Conditional expressions在scala期望expressionsifelse阻止。有几种方法可以将几个表达式(就像你有的那样)组合成一个复合表达式(你可以在其他问题的答案中看到这些表达式的例子)。

答案 3 :(得分:0)

免责声明:此解决方案适用于类似错误,但情况不同。

我遇到了同样的错误。我做的错误是,我复制粘贴命令提示符代码到文件,忘记删除函数行中的管道(|)字符,并得到相同的错误。如果你因为这个原因来到这个页面,现在你可以解决它。享受。

答案 4 :(得分:-1)

或试试这个:

def Commas(n: Long) = {
    if (n >= 1000)
        Commas(n/1000); print(","+ n%1000/100 + n%100/10 + n%10)
     else 
        print(n%1000/100 + n%100/10 + n%10)
}