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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 289623337 于 2014-10-6 09:14 编辑
  1. public class Test01
  2. {
  3. public static void main (String[]args)
  4. {
  5. /*

  6. 三个问题如果看的话去掉注释,这是我在书上找的练习题,cmd都能运行出来!
  7. //结果是0,这里面的i有什么用吗?


  8. int total=0;
  9. for(int i=0;i>total;i++)
  10. {
  11. System.out.println(i);
  12. }
  13. System.out.println(total);


  14. */


  15. /*

  16. //为什么会得这个结果i=50,我怎么认为是i=10呢?


  17. int i=10;
  18. if(i<5);
  19. i=50;
  20. System.out.println("i="+i);

  21. */

  22. /*
  23. //为什么会i=11,我认为是9啊???
  24. int i=0;
  25. while(i++<10);
  26. System.out.println("i="+i);
  27. */
  28. }
  29. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

31 个回复

倒序浏览
class Test01
{
public static void main (String[]args)
{
                //三个问题如果看的话去掉注释
                //结果是0,这里面的i有什么用吗?
                //i是for循环里面的一个局部变量,但是循环条件i>total不成立,
                //所以for里面的输出语句没有执行

                int total=0;
                for(int i=0;i>total;i++)
                {
                        System.out.println(i);
                }
                System.out.println(total);

         //为什么会得这个结果i=50,我怎么认为是i=10呢?
                //因为if语句后面加了分号(;),所以i被重新赋值为了50;
                int i=10;
                if(i<5);
                i=50;
                System.out.println("i="+i);

        //为什么会i=11,我认为是9啊???
        //后自增(++)是说,先参与运算,再本身加1;也就是说先判断i<10是否成立,再计算i=i+1结果为11;
        //你认为是9,那个是--这个运算符.
        //你这个while循环只要循环条件,没有循环体.
                int i=0;
                while(i++<10);
                System.out.println("i="+i);

        }
        //PS : 你怎么在if()和while()后面都加了分号,加了分号就结束了.
}

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我懂,但我得想想
回复 使用道具 举报
完全看不懂
回复 使用道具 举报
2楼正确
回复 使用道具 举报
本帖最后由 289623337 于 2014-10-5 21:56 编辑
鲁行 发表于 2014-10-5 21:22
class Test01
{
public static void main (String[]args)

这是三道练习题,书上面就是加了;我也感觉不用加,也是读它们后面的那一句

所以第一个有没有i都无所谓?
第二个if()加;就被重新赋值了?在基础视频里没有吧,今天算是又学习了一个新的知识点。
第三个的意思是 先判断i与10的关系后再进行++运算?  我开始算的是先给i赋值在用i++与10进行比较了!while的结构就是while(条件表达式)不用循环体,cmd自己就运行了!   多谢了,现在学到了两个知识点!
回复 使用道具 举报

慢慢来,加油!
回复 使用道具 举报
鲁行 中级黑马 2014-10-5 21:51:40
8#
第二个if()加了分号,就表示这句话已经结束,如果你去掉分号,会执行下面一句.其实在if()后面加分号,没有实际意义,
而这个程序中又写了一句i=50;当然是重新赋值.如果你这样写就没有问题了
if(i<5)
i=50;

这样就因为不满足判断条件,就没有重新赋值.i还是10;

自增(++)和自减(--)建议做几道题就了解了.
回复 使用道具 举报
MR.Sun 中级黑马 2014-10-5 22:13:13
9#
2楼正解。。。不知道楼主为什么这么喜欢在if跟for语句后面加分号,加了分号就结束!
回复 使用道具 举报
MR.Sun 发表于 2014-10-5 22:13
2楼正解。。。不知道楼主为什么这么喜欢在if跟for语句后面加分号,加了分号就结束! ...

6楼有解,这是我在书上找的联系题他就是这么写的!!!
回复 使用道具 举报
谢谢分享!:handshake
回复 使用道具 举报
这个代码太多错的了……
回复 使用道具 举报
2楼都说出来了嘛...
回复 使用道具 举报
MR.Sun 发表于 2014-10-5 22:13
2楼正解。。。不知道楼主为什么这么喜欢在if跟for语句后面加分号,加了分号就结束! ...

这是我在书上找的练习题,cmd都能运行出来!
回复 使用道具 举报
油油油菜花 发表于 2014-10-5 23:44
这个代码太多错的了……

这个是我在书上找的练习题,cmd都能运行出来!
回复 使用道具 举报

一起努力加油!!!
回复 使用道具 举报
第一个:i>total;这个条件怎么在i=0时就不成立了,循环就挂掉了,i还有什么用啊
第二个:if()判断语句后跟的是;那么i= 50等于重新给i赋值,自然打印结果就是50
第三个:和第二个类似。while后跟的也是;
在i=10时,进行判断while括弧里的条件,10<10不成立。然后10自加后打印出来是11
回复 使用道具 举报
还是论坛好啊,这些让我自己看我只能知道第一个,第二第三都是看前面回答才懂的
回复 使用道具 举报
嘿~~ 发表于 2014-10-6 14:33
第一个:i>total;这个条件怎么在i=0时就不成立了,循环就挂掉了,i还有什么用啊
第二个:if()判断语句后跟 ...

探讨下,技术交流,while后面加了;没错,但是这条语句继续运行吧,没有重新赋值,也没有结束,请问他的意思???
回复 使用道具 举报
yangzhong1991 发表于 2014-10-6 15:16
还是论坛好啊,这些让我自己看我只能知道第一个,第二第三都是看前面回答才懂的 ...

嗯有什么问题都发出来,大家一起交流交流,我这是从书上找的题和大家一起分享,还好。大家有收获就好!!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马