像在 Python 中一样将变量赋值更改为布尔值,但这次是在 Java 中



我想知道为什么我在终端中收到以下错误:

Users-MBP:~ user$ javac Testing2.java
Testing2.java:18: error: variable result is already defined in method main(String[])
    boolean result = true;
            ^
1 error

当我尝试运行以下程序时:

public class Testing2 {
    private static int TwiceRepetition(int[] elems) {
      ///
    }   
    public static void main(String[] args) {
        ///
    }
}

实际上,所需的输出是,如果任何元素的连续重复长度为二,则它打印为 true。否则,它将打印为假。

该错误表明已定义变量结果。是的。但是你不能像在 Python 中那样重新定义它吗?

例如,在python中,我可以这样做(这意味着如果满足条件,则没有错误阻止我将变量结果重新定义为true):

def p1(x): 
     result = False
     i = 0
     while i < len(x) - 1:
       if x[i]== x[i+1]:
            result = True
       i = i + 1
     return result

但是在Java中,它不起作用,为什么?

找到第一个重复时中断循环:

for (int s = 0; s + 1 < args.length; s++) {
    if (args[s].equals(args[s + 1])) {
        result = true; 
        break;
    }
}

否则,变量result将再次被覆盖。

最新更新