- class getFlower
- {
- public static void main(String[] args)
- {
- /*
- int num=0;
- int a=num%10;
- int b=num/10%10;
- int c=num/100;
- */
- for(int num=100;num<1000;num++ )
- {
- int a=num%10;
- int b=num/10%10;
- int c=num/100;
- if(a*a*a+b*b*b+c*c*c==num)
- System.out.println(num +"是水仙花数");
-
- }
- }
- }
复制代码 如果注释部分定义在外面,代码就是这样的
class getFlower
{
public static void main(String[] args)
{
int num=0;
int a=num%10; //a=0
int b=num/10%10; //b=0
int c=num/100; //c=0
//循环外部的变量已经全部为0
for(int num=100;num<1000;num++ )//num在循环外部已经定义过,循环内部不能再次定义,编译要报错
{
if(a*a*a+b*b*b+c*c*c==num)//这里的a,b,c在循环内部没有进行任何赋值操作,运算结果为0,比较结果为false,这样当然没结果
System.out.println(num +"是水仙花数");
}
}
}
当定义在内部,代码是这样的:
class getFlower
{
public static void main(String[] args)
{
for(int num=100;num<1000;num++ )
{
int a=num%10;
int b=num/10%10;
int c=num/100;
//循环内部a,b,c的值随着循环在变化,那么下面的判断就会起作用,这样就会有打印结果
if(a*a*a+b*b*b+c*c*c==num)
System.out.println(num +"是水仙花数");
}
}
}
|