public class B 
{
public static void main(String args[])
{
int x;
for(x=100;x<1000;x++)
{
if (sxh(x))

System.out.println(x);

}

}
public static boolean sxh(int i)
{
int a,b,c;
a=i/100;
b=(i-a*100)/10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
return true;
else
   return false;
}
}
为什么if (sxh(x))的意思是当sxh(x)时TURE输出X呢
而不是当sxh(x)时FALSE输出X呢

解决方案 »

  1.   

    就是说为什么IF里的选择就确定是TURE
      

  2.   

    因为是否输出x只与if的判断结果是否是TRUE有关,与sxh函数无关。
      

  3.   

    补充一下如果说一定要跟sxh函数拉上关系的话那就是,当sxh(int i)函数的返回值为TRUE时if函数会调用System.out.println(x);否则什么都不发生。
      

  4.   

    这是java中的一个规定吧.这和你写if (sxh(x)==true)是一个效果,这和语言的字义就是这样,别人把框架建好了,我们就去遵守他的规定了.
      

  5.   

    for(x=100;x <1000;x++) 这句没问题吗?
      

  6.   

    if是一个选择循环,意思是当什么的时候,它就执行什么。括号里的x是一个传参数,它可以是二或三或任意数,当sxh(x)时FALSE不会输出X,因为sxh()只是一个方法,就好像main()只是一个方法,方法只有在调用的时候才会显示结果,就好像你没有困难时是不会想到用什么方法解决的。然后调用方法后再选择一个合适的参数而已。所以sxh()是不会显示结果,而调用if()循环则会显示结果。
      

  7.   

    你这个程序的意思是,
    输出所有三位数中,符合条件的数:
    百位上的数的立方加十位上的数的立方加个位上的数的立方和刚好等于这个三位数。
    在你的程序中,使用了sxh(int x)方法,用来判断传递的三位数是否符合上述条件,如果符合,返回true,否,返回false。再说sxh(int x)方法,首先第一步是吧百、十、个位上的数分别存储在int型变量a、b、c上;
    然后进行判断,是否符合条件,符合就返回true,否返回false;
    最后是主方法mian(),遍历100~1000,用sxh()进行判断,符合条件的就打印出来!个人理解,希望这样的解释能对你有所帮助!