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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱纲 中级黑马   /  2012-2-17 16:10  /  2731 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

楼主只需要简单测试一下就O了:int x=10;System.out.println(--x);int y=10;System.out.println(y--);
JAVA 是开源的语言,我觉得亲自探索才有乐趣,也许一个问题你钻进牛角尖会纠结一两天但最终都会恍然大悟,何其爽哉。
回复 使用道具 举报
定义了一个int类型的数据:int countDown = 3;
  while(true){
        if(--countDown ==0)
            return ;
}

我是想 问--countDown是什么意思啊,如果说countDown--,这个倒是常见,countDown每运行一遍-1,那上面这个是什么意思呢,难道仅仅只是写法不一样吗?

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

15 个回复

倒序浏览
countDown--,这个是每运行一遍然后-1;--countDown这个是先-1然后再运行,两种情况是不一样的

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
下面的代码运行,a等于b吗?:(i++与++i 的区别

  1.      int i = 5;
  2.      int j = 5;
  3.      int a = i--;
  4.      int b = --j;
  5.      System.out.println(a);
  6.      System.out.println(b);
复制代码

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
这种问题 自己运行一下  稍微测试一下就知道了  
回复 使用道具 举报
while(true){
         if(--countDown ==0)
             return ;
}
--countDown:countDown每次先自己减1,再来跟0比较;
countDown--:countDown每次先跟0比较,再来自己减1;
放的位置不一样,参与运算的顺序也不一样

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
彭坤 中级黑马 2012-2-17 18:11:59
7#
给你举个例子吧:
  1. int i=10;
  2. while(true){
  3.         if(--i ==0)//这里是先将i的值减1,得到是的9,再与0进行==运算。
  4.             return ;
  5. }
  6. while(true){
  7.         if(i-- ==0)//这里是先将i与0进行==运算,再将i的值减1,得到是的9
  8.             return ;
  9. }
复制代码
总之一句话:--i是先-1,再运算,相当于(到肯德基先付钱再吃东西;i--是先运算完了再-1,相当于(去餐馆等饭吃完了再买单).感觉这个例子比较形象,佩服自己一个先

评分

参与人数 1技术分 +1 收起 理由
唐秀启 + 1

查看全部评分

回复 使用道具 举报
郭繁森 黑马帝 2012-2-17 19:44:16
8#
   if(--countDown ==0)
JVM执行到此,变量countDown 变为2.        减减 在前是:变量先执行减1动作再看 countDown 是否==0
若是 countDown --   ,执行到这  countDown 就是3
回复 使用道具 举报
自己玩 黑马帝 2012-2-17 23:32:33
9#
--countDown这个是先-1然后再运行

countDown--,这个是每运行一遍然后-1
比如说countDown的初值为5,则“--countDown”代表的值为4,countDown的值为4
“countDown--”代表的值为5,countDown的值为4
回复 使用道具 举报
countDown--,是每运行一遍然后-1;--countDown是先-1然后再运行.
回复 使用道具 举报
就是++ ,--的问题呀
回复 使用道具 举报
加加减减的问题,你这么记吧:加减在前就先加减在运算,加减在后就先运算后加减..
把运算比作打人的话,加减在前就好比先给人医药费在打人家,,在后就是先打人在给医药费...........
回复 使用道具 举报
对于前面的:是先对变量自加或自减,后赋值。
对于后面的:是先赋值,后自加或自减
回复 使用道具 举报
哈哈,原来也有你不会的呀。。。
正巧这个我会一点
我认为
一条语句中--在前就是先把变量减一再进行其它运算,--在后就是选运算语句,然后再改变变量
回复 使用道具 举报
本帖最后由 马胜平 于 2012-2-19 19:12 编辑
刘基军 发表于 2012-2-17 16:17
下面的代码运行,a等于b吗?:(i++与++i 的区别)


不相等,a输出还是5因为i是先赋值给后在自减的,b真好相反
回复 使用道具 举报
这个其实涉及运算符中的++(自加),--(自减)问题。++或--放在前面(前缀)则先进行加或减1运算,再运算下面的;++或--放在后面(后缀)则使用先运算,再进行加或减1运算。
例如
int m = 7;
int n =7;
int a = 2* ++m;//现在a 是 16,m是8
int b = 2* n++;//现在b 是 14 ,n是8
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马