if语句后面可以加无限个分号,系统均不会报错,而if语句块的语句均会执行。
已经给这个问题折腾了两次。
public static void main(String[] args)
{
int e;
int a;
do
{
e = 0;
System.out.print("请输入一个五位数:");
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
if (a < 0 || a >99999);//这里,多了一个;号!!!写程序要小心啊!!
{
System.out.println(a);
System.out.println(a < 0 || a >99999);
System.out.println("该数不是五位数,请重新输入:");
e = 1;
}
}
while (e == 1);
}
上述中,由于if(a < 0 || a > 99999)的后面多了个分号,语句块的语句无论如何都能执行。
这样的问题太小,也最能折腾人。
实际中,得严格小心,并有这样的意识,才能避免犯最细小低级的错误。