黑马程序员技术交流社区

标题: 关于变量自增 [打印本页]

作者: 苑桥别馆    时间: 2014-11-13 23:12
标题: 关于变量自增
JAVA中i++;++i有什么区别,什么时候用有区别,什么时候没有区别
作者: 田峻菘    时间: 2014-11-13 23:25
++i或--i,i先自增1或自减1,再参与运算;
i++或i--,i先参与运算,再自增1或自减1。
当运算只有i一个参与的时候++i和i++都一样
比如for(int i = 0;i < 100; i++){
               i++;
      }
这里面的循环后表达式和循环体写成i++或++i都可以。
作者: M_______r    时间: 2014-11-14 12:58
楼上已经解答的很详细了
作者: 渐行渐远    时间: 2014-11-14 17:24
本帖最后由 渐行渐远 于 2014-11-14 17:31 编辑

public class Zizeng {
                /*
                 * i++和++i做为单条语句的时候是一样的,等价于i=i+1;                 * 做运算的时候可以分别当两条语句
                 * 如x=2*i++等价于x=2*i;i=i+1;
                 * x=++i*2等价于i=i+1;x=i*2;
                 * */
        public static void main(String[] args) {
                int x=0,y=0;
                int x1,y1;
                x1=2*x++;                        //x1等于x自增前的值乘以2,语句结束后x加1;
                y1=2*++y;                        //y1等于y自增后的值乘以2,语句结束后y加1;
                System.out.println("x="+x);
                System.out.println("x1="+x1);
                System.out.println("y="+y);
                System.out.println("y1="+y1);
                /*                 
                 * 打印结果:
                 *         x=1
                 *      x1=0
                 *        y=1
                 *        y1=2
                 * */
        }
}


作者: wzl963358694    时间: 2014-11-14 17:35
一楼说的很全了、、
作者: 菜鸟一号    时间: 2014-11-15 11:38
单独使用没区别,跟其他运算符一齐用就有区别。就是先自增还是后自增的区别
作者: baoting_1990    时间: 2014-11-15 11:54
i++,i--运算后的表达式的值是i,而i的值是i+1,i-1;
++i运算后的表达式的值是i+1,i-1,而i的值是i+1,i-1;

作者: wf111sxwf    时间: 2014-11-15 13:23
int i = 1;
  int a = i++   等效于 int i = 1; int  a = i; i++

int a = ++i   等效于   int i = 1; i++; inta = i
希望能帮到卤煮
作者: 迷失的小Z    时间: 2014-11-15 22:51
赋值时先赋值再自增,先自增再赋值……单独用都是自增一
作者: 郑飞    时间: 2014-11-16 01:26
有个比较好记得办法
如果你关注表达式的值:
      就看前半部分 如果是i 那么表达式值就是i;  如果前半部分是++,那么表达式值就是i+1;
如果你关注i的值那就更简单了 都是i+1;

作者: tmac1999    时间: 2014-11-16 02:28
怎么现在论坛发布了帖子
作者: 与梦逆风而行    时间: 2014-11-16 23:08
我觉得10楼的 方法特别好用
作者: 米和饭    时间: 2014-11-18 10:32
int i=1;
int a=0;
a=i++;
输出a的值是1
输出i的值是2
因为i++是先赋值在运算的
而++i是先运算再赋值的
a=++i;
输出a的值是2
输出i的值也是2
作者: java小兵    时间: 2014-11-18 12:32
毕老师的吃饭理论啊。x=i++是先出去玩,再回来吃饭,x=++i是先吃饭再出去玩。
两个单独存在时,是一样的。都是自增,





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2