主题:[讨论]这段代码为什么在输入为非数字的时候无法结束进程?
这段代码为什么在输入为非数字的时候无法结束进程?
一个计算回文数的题目,代码很简单,附件里面有源程序
import javax.swing.JOptionPane;
public class Class1 {
public Class1() {
}
public static void main (String[] args) {
boolean flag=false;
String str=JOptionPane.showInputDialog("输入一个整数");
if(str.length()>0 && str.charAt(0)!='0'){//最高位是否没有0
for(int i=0;i<str.length();i++) if(!Character.isDigit(str.charAt(i))){flag=true;break;}//输入是否为一个数字
if(!flag){
for(int i=0;i<(str.length()-i-1);i++){//判断输入是否以中间位对称
if(str.charAt(i)!=str.charAt(str.length()-i-1)){//如果第i位不与i的对称位不相等
flag=true;break;//给出标志
}//if
}//for
if(flag) JOptionPane.showMessageDialog(null,str.length()+"位数"+str+"不是回文数");
else JOptionPane.showMessageDialog(null,str.length()+"位数"+str+"是回文数");
}//if
else{
JOptionPane.showMessageDialog(null,"输入不符合要求!");
}//else
}//if
else{
JOptionPane.showMessageDialog(null,"输入不符合要求!");
}//else
}//main
}//Class1
一个计算回文数的题目,代码很简单,附件里面有源程序
import javax.swing.JOptionPane;
public class Class1 {
public Class1() {
}
public static void main (String[] args) {
boolean flag=false;
String str=JOptionPane.showInputDialog("输入一个整数");
if(str.length()>0 && str.charAt(0)!='0'){//最高位是否没有0
for(int i=0;i<str.length();i++) if(!Character.isDigit(str.charAt(i))){flag=true;break;}//输入是否为一个数字
if(!flag){
for(int i=0;i<(str.length()-i-1);i++){//判断输入是否以中间位对称
if(str.charAt(i)!=str.charAt(str.length()-i-1)){//如果第i位不与i的对称位不相等
flag=true;break;//给出标志
}//if
}//for
if(flag) JOptionPane.showMessageDialog(null,str.length()+"位数"+str+"不是回文数");
else JOptionPane.showMessageDialog(null,str.length()+"位数"+str+"是回文数");
}//if
else{
JOptionPane.showMessageDialog(null,"输入不符合要求!");
}//else
}//if
else{
JOptionPane.showMessageDialog(null,"输入不符合要求!");
}//else
}//main
}//Class1