如果没有错误,我会得到一个其他的,我不明白为什么 - JAVA

时间:2015-05-29 20:01:37

标签: java if-statement

 public class ProblemFour {
    public static void main(String[] args) {
        boolean externalCheck = true;
        boolean internalCheck = true;
        String Str = new String();
        int prod = 0;
        int mod = 0;
        while (externalCheck == true) {
            for (int a = 999; a > 99; a--) {
                for (int b = 999; b > 99; b--) {
                    prod = a * b;
                    Str = Integer.toString(c);
                    if (internalCheck == true && mod < Str.length() / 2) {
                        if (c % 2 == 0) {
                            for (int i = 0; i < Str.length(); i++) {
                                if (Str.substring(i) != Str.substring(Str.length() - 1)) {
                                    internalCheck = false;
                                } else {
                                    mod++;
                                }
                            } else {
                                String S = Str.substring(0, (Str.length() - 1) / 2) + Str.substring(Str.length() / 2, Str.length());
                                for (int i = 0; i < S.length(); i++) {
                                    if (S.substring(i) != Str.substring(S.length() - 1)) {
                                        internalCheck = false;
                                    } else {
                                        mod++;
                                    }
                                }
                            }
                        } else {
                            return Str;
                            System.out.println(Str);
                            externalCheck = false;
                        }

我收到一条错误消息,说我没有其他地方,如果我不知道这是从哪里来的。特别是在第31行。我还需要更多细节。这还不够详细

2 个答案:

答案 0 :(得分:1)

你错过了四个结束括号:一个就在之前:

else{
  String S= Str.substring(0,(Str.length()-1)/2) + Str.substring(Str.length()/2, Str.length());

方法结束时有三个。

或许那些不是正确的地方......但它们会使一切平衡。之后你还有其他问题。

我强烈建议您学习如何使用可以帮助您编写Java代码的编辑器 - 例如Emacs中的Eclipse IDE或Java Mode,或者其他什么。当代码看起来像你的那样试图追查这样的问题是折磨。一个好的开发编辑将帮助你保持你的括号排队。

答案 1 :(得分:0)

您没有if (c%2 ==0)的右括号:

if (c%2 ==0) {
    for(int i =0; i<Str.length(); i++) {
        if(Str.substring(i) != Str.substring(Str.length()-1)) {
            internalCheck = false;
        } else {
            mod++;
        }
    }
} else { //You are missing the } here. What you have is just "else {"
   ...
}