我在第
行收到错误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;
}
}
}
由于
答案 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
此外,如果没有break
或loop
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)
有两个问题:
如果您尝试退出应用程序,则可以使用System.exit方法。但是,更好的方法是返回一个值,表明用户没有选择值,例如-1或null(将方法的返回类型更改为Integer)。