【发布时间】:2016-12-29 18:45:52
【问题描述】:
我有一个错误,在第三个 IF 语句中。它检查用户输入的数字是否在 (1-6) 范围内,并且字母是 a-f。我无法测试我的搜索算法,因为该行似乎有错误。我搞不定。似乎有什么问题?是 answer.charAt(1) 吗?
boolean wronganswer = true;
while (wronganswer == true){
answer = (String)JOptionPane.showInputDialog(null, new JLabel(sb.toString()), "Battleships", JOptionPane.INFORMATION_MESSAGE, pic, null, "");
if(answer.length() == 2){
if ((Character.isLetter(answer.charAt(0))) && (Character.isDigit(answer.charAt(1)))){
if ((answer.charAt(1) >= 0) && (answer.charAt(1) <= 6)){
for (int k = 0; k < rows.length; k++){
if(rows[k] == (""+answer.charAt(0))){
wronganswer=false;
}
}
JOptionPane.showMessageDialog(null,"No! That letter is not on the grid!");
}
else{
JOptionPane.showMessageDialog(null,"No! That number is not on the grid!");
System.out.println(answer.charAt(1));
}
}
else{
JOptionPane.showMessageDialog(null,"No! Enter a letter, THEN a number!");
}
}
else{
JOptionPane.showMessageDialog(null,"No! Enter ONE letter and ONE number!");
}
}
[编辑] 修复了粘贴到堆栈溢出时的缩进错误
【问题讨论】:
-
charAt(1)返回字符,而不是数字代表的数字:(answer.charAt(1) >= '0') ...
标签: java if-statement input range selection