永发信息网

java中先++和后++的区别

答案:6  悬赏:60  手机版
解决时间 2021-12-03 00:57
java中先++和后++的区别
最佳答案
int a = 5, b = 5;
System.out.println(a++); // a是先输出5,然后再对a进行累加
System.out.println(++b); // b是先进行累加,然后再输出,输出值为6
全部回答
int i = 1;
int y = 1;
i++;
++y;
System.out.pritln(i);//输出1
System.out.pritln(y);//输出2

明白了吗~

前自增(++x)相当于:
int plusplus(int &x)
{
x = x + 1;

return x;

}
后自增(x++)相当于:
int plusplus(int &x)
{
int y = x;

x = x + 1;

return y;

}
所以从原子上考虑,底层线程上的同步,后自增是非线程安全的
一个先执行后运算,一个先运算后执行
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
 }
}

//请记住:不管++在前还是在后,永远都会加一,
//区别就是 ++在前,则先加完再运算,  ++在后,先运算再加一
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
若(a-1)a+2=1,则a=________.
下列各组词语中,没有错别字的一组是A.徇情/
江苏天常复合材料股份有限公司待遇怎么样
皮卡堂求土豪养我
这种蒸饭箱如何接380v电???跪着在线等
信惠二类汽修厂在什么地方啊,我要过去处理事
CF手游MP7怎么样
求一首字藏头诗诗中有张国辉爱莎莎
致明德是不是传销
1966年 海鸥ST5腕表,请问这个表有什么价值?
安徽蚌埠技师学院怎么样好吗?
我有个堂弟高中没考起就在职院读书,去了职院
双兴加油站地址好找么,我有些事要过去
秦皇岛海港区新闻西里十栋
那有卖这款手机的
推荐资讯
姻缘本是前世修,南京女子四川求。不是婚姻终
2018年土木工程专业好就业吗
大家觉得 老妖精 的系列书如何啊
蘑菇炒虾仁怎么做好吃
What about having a barbecue this Sun
图中长江沿岸的港口城市和交汇支流,对应正确
深圳横岗大厦附近有国泰君安的营业点么,想开
均里村地址在什么地方,我要处理点事!
付出无大小,付出分有形和无形
17岁去韩国当练习生会不会太晚了
文言文《用人之道》
谁知道辽宁省内有哪些日本企业或工厂在工作之
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?