import javax.swing.JOptionPane;
public class Number_1 {
public static void main(String args[])
{
int number = 0,d1,d2,d3,d4,d5;
String str = JOptionPane.showInputDialog("输入一个1至99999之间的数");
number = Integer.parseInt(str);
if(number>=1||number<=99999)
{
d5= number % 100000 / 10000;
d4= number % 10000 / 1000;
d3= number % 1000 / 100;
d2= number % 100 / 10;
d1=number % 10;
if(d5!=0)
{
System.out.println(number+"是5位数");
if(d5==d1||d4==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d4!=0)
{
System.out.println(number+"是4位数");
if(d4==d1||d3==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d3!=0)
{
System.out.println(number+"是3位数");
if(d3==d1)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d2!=0)
{
System.out.println(number+"是2位数");
if(d2==d1)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d1==0)
{
System.out.println(number+"是1位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.println("\n %d不在1至99999之间"+number);//这行代码怎么不起作用
}
}
键入不是1~99999的数时, 还是显示为5位数。 例如:输入123456,输出为:1234567是5位数,1234567不是回文数
}
public class Number_1 {
public static void main(String args[])
{
int number = 0,d1,d2,d3,d4,d5;
String str = JOptionPane.showInputDialog("输入一个1至99999之间的数");
number = Integer.parseInt(str);
if(number>=1||number<=99999)
{
d5= number % 100000 / 10000;
d4= number % 10000 / 1000;
d3= number % 1000 / 100;
d2= number % 100 / 10;
d1=number % 10;
if(d5!=0)
{
System.out.println(number+"是5位数");
if(d5==d1||d4==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d4!=0)
{
System.out.println(number+"是4位数");
if(d4==d1||d3==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d3!=0)
{
System.out.println(number+"是3位数");
if(d3==d1)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d2!=0)
{
System.out.println(number+"是2位数");
if(d2==d1)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d1==0)
{
System.out.println(number+"是1位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.println("\n %d不在1至99999之间"+number);//这行代码怎么不起作用
}
}
键入不是1~99999的数时, 还是显示为5位数。 例如:输入123456,输出为:1234567是5位数,1234567不是回文数
}
if (number >= 1 && number <= 99999) {//用且,不是或
if(number>=1||number<=99999)
改为:
if(number >= 1 && number <= 99999){
类型 PrintStream 中的方法 printf(String, Object[])对于参数(String, int)不适用
因为有错误运行不了,我就改成了System.out.println("\n %d不在1至99999之间"+number)
我现在想知道用原来的代码,输入123456时,会是怎样的提示!
System.out.printf("\n %d不在1至99999之间",number);// 这行代码怎么不起作用中间不用加,用逗号分隔.
这就是源代码的话,就是括号不匹配了!看看,前面比后面多一个。改成下面的:System.out.printf("\n %d不在1至99999之间",number)