如果在java代码中出现Else错误

时间:2011-03-09 17:58:57

标签: java

我在第

行收到错误
else break;

我认为这可能与“{}”

的位置有关
public class Palindrome {

    private static String number;

    public static void main(String[] args) {
        display();
    }

    private static int getUserInput() {
        int inputNumber = 0;
        String answer = JOptionPane.showInputDialog(null, "Please enter a five digit number","Enter a number");
        inputNumber = Integer.parseInt(answer);

        if(number.length() !=5 ){
            JOptionPane.showMessageDialog(null,"Please enter a 5 digit number!","Try again",
            JOptionPane.PLAIN_MESSAGE);

        else break;
        }

        return inputNumber;
    }

    private static boolean check(){
        int inputNumber = getUserInput();
        int number = inputNumber;
        int[] myArray = new int[5];
        for (int i = 0; i < myArray.length; i++) {
            myArray[i] = (int) (number /(Math.pow(10,i)) % 10);
        }
        if(myArray[0] == myArray[4] && myArray[1] == myArray[3])
            return true;
        else
            return false;
    }

    public static boolean display(){
        if (check() == true) {
        JOptionPane.showMessageDialog(null, "This number is a Palindrome",
        "Excellent!",JOptionPane.INFORMATION_MESSAGE);
        } else
            JOptionPane.showMessageDialog(null,
                "Number is not a Palindrome!",
                "Sorry",
                JOptionPane.ERROR_MESSAGE);
            return false;
        }
    }
}

由于

5 个答案:

答案 0 :(得分:4)

else不能成为if的一部分。所以,改变这个 -

if(number.length() !=5 )
{
    JOptionPane.showMessageDialog(null,"Please enter a 5 digit number!","Try again",
    JOptionPane.PLAIN_MESSAGE);
}
else break;

另外,我不明白为什么你在这里使用break

答案 1 :(得分:1)

if(/*some condition*/){
}else{
     break;//invalid use of break it won't compile see below
}

您正在编写else而未匹配if

此外,如果没有breakloop

,您就无法switch case

答案 2 :(得分:1)

另外注意:代码如“if(condition)return true; else return false;”可以代替“返回条件”。更干净。

答案 3 :(得分:1)

您不能从方法中break;,而必须从方法返回。但是在你的情况下,你似乎想要一个重试循环。

private static int getUserInput() {
  while(true) {
    String answer = JOptionPane.showInputDialog(null, "Please enter a five digit number","Enter a number");
    if(answer.length() == 5 ) 
        return Integer.parseInt(answer);
    JOptionPane.showMessageDialog(null,"Please enter a 5 digit number!","Try again",
        JOptionPane.PLAIN_MESSAGE);
 }
}

答案 4 :(得分:1)

有两个问题:

  1. else语句与if语句无关。你需要将它移到{}以外的其他地方
  2. 您正在使用while或for循环(或命名语句)之外的中断。
  3. 如果您尝试退出应用程序,则可以使用System.exit方法。但是,更好的方法是返回一个值,表明用户没有选择值,例如-1或null(将方法的返回类型更改为Integer)。