关于JAVA自加的问题

作者&投稿:雀侵 (若有异议请与网页底部的电邮联系)
关于JAVA 自加自减的问题~

int a=1;
a=(a++);
System.out.println(a);
这里的括号可以去掉的,是一样的。
把a赋值给a,运算之后然后a自己加1。所以这里打印a当然是1。
========-================-==========================
int a=1;
b=a++;
System.out.println(a);//这里打印的a,是a加1后的结果,所以是2.
System.out.println(b);//这里是把a先赋值给b,计算后他自己再加1,所以b是1.
这个a=2,b=1.有什么区别吗。
=====-========-=========================-===========
a++是先计算后加1.
++a是先加1再计算。
这是我之前回答的和这题很像,,

代码有误。
int i = 0;
i = i++;
意思是先将i声明初始化为0(int i=0),然后将将i赋值为i(i=i++),这里的i自加,是先赋值,先把i的值赋给别人,自己再累加一次,所以最后输出的i自然还是最初始的i,即0;
这里如果改成
int i=0;
i++;
或是
int i=0;
i=++i;
输出的就是1了。

错误在这
assistFeeCount = prpLassistFeeDto.getVeriSumLoss(); 每次循环都会取新的值。
所以你后面即使加了也,也白加。

所以单独定义一个变量,用来计算合计值,如下:
double sum = 0.0; //这里加了个变量
for(int i=0; i<assSize; i++){
prpLassistFeeDto = (PrpLassistFeeDto) assList.get(i);
if(prpLassistFeeDto == null){

}else{
assistFeeCount = prpLassistFeeDto.getVeriSumLoss();

System.err.println("eeeeeeee == " + assistFeeCount);
sum += assistFeeCount; //这里改了一下
}

}
System.err.println("sum == " + sum );

for(int i=0; i<assSize; i++){
prpLassistFeeDto = (PrpLassistFeeDto) assList.get(i);
if(prpLassistFeeDto == null){

}else{
double assistFeeCountTemp = prpLassistFeeDto.getVeriSumLoss();

System.err.println("eeeeeeee == " + assistFeeCountTemp);
assistFeeCount += assistFeeCountTemp;
}

}
System.err.println("assistFeeCount == " + assistFeeCount);

你这程序写错鸟...最后的440是220+220得来的,
你累加都是用的assistFeeCount,每次都被重新更新鸟...
用一个变量get值,一个变量累加就行了,
assistFeeCount = prpLassistFeeDto.getVeriSumLoss();

System.err.println("eeeeeeee == " + assistFeeCount);
assistFeeCountAAAAA += assistFeeCount ;
第三句把变量名改了吧..

最后一次循环时,assistFeeCount = prpLassistFeeDto.getVeriSumLoss();你先给assistFeeCount赋值为220.0,然后assistFeeCount += assistFeeCount;操作,220.0+220.0然后赋值给assistFeeCount ,所以才会导致440.0。

assistFeeCount 是不是他类型的问题呢???


java自增和括号优先级问题
你确定两个都是16么~我刚测试了++k是17,k++是16,我说怎么算了半天也算不出你的结果,++的优先级高于括号,++k + (k+5)会先计算++k,++k是先自加后参与运算,所以此时k值为6,然后计算括号里的部分,此时是(6+5),于是结果是17。k++ +(k+5)会先计算k++,而k++是先运算后自加...

java问题:为什么int i=0;i=i++;i的值是0;而int i=0;i++;或int i=0...
1,int i = 0;i此时就是0 2,i++这个返回值是0 用过后注意此时i为1 3,但你将i=i++(注意:i++这个返回值是0);又重新将i值赋为0所以最后i的结果就是0 而int i=0;i++;或int i=0;i=++i;同上面的2此时i的值已经为1了,你也没做重新赋值的操作。所以结果是1 ...

Java中a=a++;的疑问
表达式a=a++的运算过程是先将a的指赋予a!即先运行a=a,再自动加1,这里加1只是作为返回值出现,并没有赋给a!

java中的自增运算有点糊涂,请高人给与指点
也就是说先将x1的值赋给y1,然后x1再自己加1。但是第二句就不是这样了,不要看++位置变了没什么稀奇,实际上是运算顺序也发生了变化,这是由于程序简写造成的 y2=++x2;就相当于 X2自加;y2=x2;也就是说y2=(++x2);先算x2自加,然后再赋值,这是由于简写和从后向前算决定的。那么怎么好...

自学Java编程存在哪些弊端?
自学Java编程确实存在一些弊端,下面我将结合自己的经历和观点,列举一些可能的问题:学习效率相对较低:相对于有经验的导师或培训机构,自学者往往需要花费更多的时间和精力来掌握相同的知识和技能。由于缺乏系统的学习规划和专业的指导,自学者可能会在一些不必要的地方花费过多的时间和精力,导致学习效率相对...

JAVA循环自加语句
sum初始化为0.0,i,j会自动初始化为0.0。2、continue不是退出循环,而是路过循环体内其它语句,继续到循环开始处自加。else{}是个空语句,在这里没意义。3、“sum=”,这里"sum="是字符串常量,而"sum="+sum,+号后面的sum是变量,代表累加值,在java中,String运算中的+号表示连接符。

Java中为i++是什么意思?
i++是自加的意思 如i=2++ 那么i就等于3 sum 是把 i 出现过的值 自加 累加 起来 例如: i出现过的值为1,2,3,4,5 i=1时 sum=1 i=2时 sum的现在的值+i 相当于1+2 以此类推

一般java面试都会问些什么问题?
2、你觉得你个性上最大的优点是什么?回答提示:沉着冷静、条理清楚、立场坚定、顽强向上、乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我在北大青鸟经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。3、说说你最大的缺点?回答提示:这个问题企业问的概率很大,通常不希望听到直接...

在java中有int[] a ,那么a[i]++的意思是a[i]这个值自加一,还是[]中的...
当然是a[i]这个值加1.比如我给你举几个例子 int [] a = {2,4,6,8}; int i=2;a[i]++ 是a[2]这个值自加1,也就是说a[2]有6变成7 a[i++] 这个是其实还是取得a[2]的值,然后把i自加,i的值从2变成3

java中如何让一个数不断加1
使用自加运算符,比如i++;可以实现变量自增1运算;

阿克塞哈萨克族自治县18034476673: 关于JAVA自加的问题 -
氐杭正清: 所以单独定义一个变量,用来计算合计值,如下; 每次循环都会取新的值.所以你后面即使加了也;这里改了一下 } } System;/这里加了个变量 for(int i=0; System.err.println("eeeeeeee == " + assistFeeCount).println(&quot,也白加; i++){ ...

阿克塞哈萨克族自治县18034476673: 一个关于java自加的问题...
氐杭正清: 20 x=x++;//把右边的值赋予左边,右边的结果是x,即20 还有,比如: int x = 20; for(int i = 0;i < 10;i++) x=x++; System.out.println(x); 它的结果还是20,原理还是一样的,10次循环每次都把右边的值赋予左边,而右边的值每次都是20(因为下次循环时右边x的取值是上次的左边的值即20),如果是x = ++x;那情况就不一样了哟,不过原理也是一样的,呵呵~

阿克塞哈萨克族自治县18034476673: JAVA 关于变量自加问题 class Integers {public static void main(String args[]) { int a,b; a=13; b=a++; -
氐杭正清: 这个是java的运算规则 b=a++,这个在a自加之前就把值赋给了b,相当于b=a;这时a=13;a=a+1; 这时a=14 当b=++a的时候,先自加,后赋值,就相当于a=a+1;b=a; 同理,a--和--a也一样

阿克塞哈萨克族自治县18034476673: java中的自增问题 -
氐杭正清: count = count++ 是先把count赋值给左边,即:count=count,然后再++ count = ++count 是先自增,再赋值.所以,如果你要修改的话,可以修改成 count = ++ count ,count += 1;或者, 直接写 count++ 都可以

阿克塞哈萨克族自治县18034476673: 关于JAVA 自加自减的问题 -
氐杭正清: 第一段:int a=1,b=0; b=a++; 相当于:b=a然后a++,所以b=1而a=2; 第二段:int a=1; a=a++; 相当于:a=a,然后原来的a(寄存器)进行自加,其实此时的寄存器的值是2,但它并没有赋值到a中,所以a还是等于1 这样讲理解吗?

阿克塞哈萨克族自治县18034476673: Java中自加问题 -
氐杭正清: 说下从第三个之前i=2了,让后他自加了3次所以i=5,j没变j=0,k是i自加三次依次为3 ,4 ,5,然后求和所以k=12,对k=++i+ ++i+ ++i说下,他是先自加然后计算也就是k=3+4+5 和类似(++i)+(++i)+(++i) 个是等价的 咋们看下第四行i连续自减3次所以i了,j=0不说了,k=i-- + i-- + i-- 中,先计算然后自减,即k=5+4+3

阿克塞哈萨克族自治县18034476673: java语言中的自加运算前加和后加的详细区别 -
氐杭正清: 晕,自加/自减的优先级比移位高啊.....,还有system.out.println(c);c在哪定义的啊? 运算符优先级表 优先级 运算符 结合性 1 () [] . 从左到右 2 ! +(正) -(负) ~ ++ -- 从右向左 3 * / % 从左向右 4 +(加) -(减) 从左向右 5 << >> >>> 从左向...

阿克塞哈萨克族自治县18034476673: 关于java自加自减的问提 -
氐杭正清: +号在前是先做运算,即先做加减之后在赋值也就是增值,+号在后是先赋值在运算,即先赋值在做加减,后增值 所以你的程序第一个count=(i++)+(i++)+(i++) 是+号在后,所以先赋值在进行+1,所以第一次i++的值为3,i的值为4,第二次i++的值为4,i的值为5,第三次i++的值为5,i的值为6,所以结果是6 这样一来,上面的要是明白的了,下面的就很好解释了,第一次i++为3第二次为4第三次为5所以count的结果为12

阿克塞哈萨克族自治县18034476673: 关于JAVA中的自加自减运算 -
氐杭正清: b == x>y && x++==y--; 因为这是个短路表达式…… 编译器先判定了x>y,因为x>y为false,所以&&连接就成了一个永假表达式,编译器自然不会再去计算x++是否等于y--,也就没机会改变x和y的值了……

阿克塞哈萨克族自治县18034476673: JAVA里面的自增问题、实在是搞不明白了.
氐杭正清: 结果是5也对6也对. 只是你说结果是5所以其他人就帮你找5的借口了..如果结果输出6,自然就有人告诉你6的理由. 是5还是6取决于java解释器怎么对表达式分段(就是怎么样才算一段,一次运算) 如果a++就算是一次运算那么结果就是6,如果整...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网