A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张金 于 2012-9-22 20:46 编辑

class  shui
{
        public static void main(String[] args)
        {
                int x = 1;
                int y = 1;
                int z = 1;
                int count =0;
                while(x<=10 || y<=10 || z<=10)
                {
                if(x*x*x+y*y*y+z*z*z<=999 && x*x*x+y*y*y+z*z*z>=100);
                {
                count++;
                }
                x++;
                y++;
                z++;
                }
                System.out.println("count="+count);
        }
}
自己乱写的,不知道,为什么结果输出是10;

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
while(x<=10 || y<=10 || z<=10)     //因为只循环10次
                {
                if(x*x*x+y*y*y+z*z*z<=999 && x*x*x+y*y*y+z*z*z>=100);   //这句代码根本没起到作用

                {
                count++;
                }
回复 使用道具 举报
class  shui
{
        public static void main(String[] args)
        {
                int x = 1;
                int y = 1;
                int z = 1;
                int count =0;
                while(x<=10 || y<=10 || z<=10)
                {
                if(x*x*x+y*y*y+z*z*z<=999 && x*x*x+y*y*y+z*z*z>=100)//把 ; 去掉
                {
                count++;
                System.out.println("x="+x+"x*x*x+y*y*y+z*z*z="+3*x*x*x);
                }
                x++;
                y++;
                z++;
                }
                System.out.println("count="+count);
        }
}
回复 使用道具 举报
public static void main(String[] args) {
                int x = 1;
                int y = 1;
                int z = 1;
                int count = 0;
                //while循环用于控制循环是否继续进行的判断条件
                while (x <= 10 || y <= 10 || z <= 10) {
                        //if条件判断,也许我们会把注意力都集中到这上面,可是千万要小心,因为其后面有;结束符,它是一条完整的代码,就其在本函数中是没有任何用的,如果硬说有用的话,那就是迷惑大家的
                        if (x * x * x + y * y * y + z * z * z <= 999&& x * x * x + y * y * y + z * z * z >= 100);
                        //有意思的这一段代码:在Java中有一个名称叫做局部代码块,在这个while循环判断条件满足的情况下,count变量的值就会自增1
                        {
                                count++;
                        }
                        //下面三句话,就不用说了
                        x++;
                        y++;
                        z++;
                }
                System.out.println("count=" + count);
        }

Java是博大精深的,上面用到了局部代码块,楼主可以多查以下资料,不光是局部代码块,还有构造代码块、静态代码块

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你在if判断语句的后面加了一个分号。然后把count++加上了大括号。楼主的代码相当于这样的。
class  shui
{
         public static void main(String[] args)
        {
                 int x = 1;
                 int y = 1;
                 int z = 1;
                 int count =0;
                 while(x<=10 || y<=10 || z<=10)
                 {
                 count++;
                 x++;
                 y++;
                 z++;
                 }
                 System.out.println("count="+count);
         }
}

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 邓利军 于 2012-9-22 19:45 编辑

楼主,我告诉你为什么你的结果是10.
因为你这语句后面有个分号";" if(x*x*x+y*y*y+z*z*z<=999 && x*x*x+y*y*y+z*z*z>=100);
加了分号意思是:你这代码块结束了,if 和while后面都不能带分号.
你加了分号,此句条件表达式无效了,然后相当于循环执行以下代码
                 int x = 1;
                 int y = 1;
                 int z = 1;
                 int count =0;
                 while(x<=10 || y<=10 || z<=10)
                {
                      count++;
                }
                 x++;
                 y++;
                 z++;
x,y,x,从1到10循环,但这循环没有用了,无输出,count从0加1一直到10,x<=10 || y<=10 || z<=10条件满足后,count=10,然后才开始执行这一句输出语句
System.out.println("count="+count);
所以输出结果是10,
________________________________________________________________________________

楼主,你列出那样100到999的条件,是想得到这样的结果吧???????

x=4,x*x*x+y*y*y+z*z*z=192
x=5,x*x*x+y*y*y+z*z*z=375
x=6,x*x*x+y*y*y+z*z*z=648
count=3

那么代码可以这样写:
class  shui
{
         public static void main(String[] args)
         {
                 int x = 1;
                 int y = 1;
                 int z = 1;
                 int count =0;
                 while(x<=10 || y<=10 || z<=10)
                  {
                   int sum=x*x*x+y*y*y+z*z*z;
                   if(sum<=999 && sum>=100)
                  {
                   count++;
                System.out.println("x="+x+",x*x*x+y*y*y+z*z*z="+sum);
      }
                 x++;
                 y++;
                 z++;
                 }
                 System.out.println("count="+count);
         }
}

如果有什么问题请楼主回复,版主,我第一次回答问题,此题技术含量不高,揣摩楼主想法技术含量还可以,望能给分,以安慰我受伤的心灵!!!!万分感谢版主!!!

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马