java中先++和后++的区别
答案:6 悬赏:60 手机版
解决时间 2021-12-03 00:57
- 提问者网友:孤凫
- 2021-12-02 14:23
java中先++和后++的区别
最佳答案
- 五星知识达人网友:撞了怀
- 2021-12-02 15:14
int a = 5, b = 5;
System.out.println(a++); // a是先输出5,然后再对a进行累加
System.out.println(++b); // b是先进行累加,然后再输出,输出值为6
System.out.println(a++); // a是先输出5,然后再对a进行累加
System.out.println(++b); // b是先进行累加,然后再输出,输出值为6
全部回答
- 1楼网友:逐風
- 2021-12-02 19:46
int i = 1;
int y = 1;
i++;
++y;
System.out.pritln(i);//输出1
System.out.pritln(y);//输出2
int y = 1;
i++;
++y;
System.out.pritln(i);//输出1
System.out.pritln(y);//输出2
明白了吗~
- 2楼网友:从此江山别
- 2021-12-02 18:49
前自增(++x)相当于:
int plusplus(int &x)
{
x = x + 1;
return x;
}
后自增(x++)相当于:
int plusplus(int &x)
{
int y = x;
x = x + 1;
return y;
}
所以从原子上考虑,底层线程上的同步,后自增是非线程安全的
int plusplus(int &x)
{
x = x + 1;
return x;
}
后自增(x++)相当于:
int plusplus(int &x)
{
int y = x;
x = x + 1;
return y;
}
所以从原子上考虑,底层线程上的同步,后自增是非线程安全的
- 3楼网友:罪歌
- 2021-12-02 17:24
一个先执行后运算,一个先运算后执行
- 4楼网友:掌灯师
- 2021-12-02 16:16
public class Test {
static {
int x = 5;
}
static int x, y;
public static void main(String[] args) {
x--; //x=-1, y=0 这里x减了一次1,本来是0,现在是-1
myMethod();
System.out.println(x + y + ++x); //这里x加了一次1,本来是1,现在是2,y是0,所以是3
}
public static void myMethod() {
y = x++ + ++x; //x=1, y=0 这里x加了两次1,本来是-1,现在是1
}
}
//请记住:不管++在前还是在后,永远都会加一,
//区别就是 ++在前,则先加完再运算, ++在后,先运算再加一
static {
int x = 5;
}
static int x, y;
public static void main(String[] args) {
x--; //x=-1, y=0 这里x减了一次1,本来是0,现在是-1
myMethod();
System.out.println(x + y + ++x); //这里x加了一次1,本来是1,现在是2,y是0,所以是3
}
public static void myMethod() {
y = x++ + ++x; //x=1, y=0 这里x加了两次1,本来是-1,现在是1
}
}
//请记住:不管++在前还是在后,永远都会加一,
//区别就是 ++在前,则先加完再运算, ++在后,先运算再加一
- 5楼网友:行雁书
- 2021-12-02 15:47
i=0; y = ++i ; 先自增后,后赋值,此时y =1;
i= 0; y = i++ ; 先赋值,后自增; 此时y=0
++i与i++是java的操作符上优先级不一样
你题目中的
static{
int x= 5; //相当于局部变量,未做全局赋值
}
x,y 初始化值都为0;
x--; // x = -1;
myMethod();// y = (-1 + 1) x=1; y= 0;
System.out.println(x + y + ++x); // 1 + 0 + 2 = 3
i= 0; y = i++ ; 先赋值,后自增; 此时y=0
++i与i++是java的操作符上优先级不一样
你题目中的
static{
int x= 5; //相当于局部变量,未做全局赋值
}
x,y 初始化值都为0;
x--; // x = -1;
myMethod();// y = (-1 + 1) x=1; y= 0;
System.out.println(x + y + ++x); // 1 + 0 + 2 = 3
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯