大家帮我看下JAVA自运算这个代码有什么问题?

发布时间:2024-05-14 04:26 发布:上海旅游网

问题描述:

public class ZiYunSuan
{
public static void main(String[] args)
{
int a=10;int c=5;
int b=a;
System.out.println("我是用n++方式写的结果b: " +(b=a++ +c));//结果为15
System.out.println("我是用++n方式写的结果b: " +(b=++a +c));//结果为16
System.out.println("我是用n--方式写的结果b: " +(b=a-- -c));//结果为5
System.out.println("我是用--n方式写的结果b: " +(b=--a -c));//结果为4
}
}//是否是a++里的结果运算完后下面的运算都是用运算后的a来做初始值。即a=11了?如何避免?

每次运行饿结果都是和我算的不一样.

问题解答:

第一次a++,a先与后面的c进行加法运算,再自加,结果15,a的值自加后为11;
第二次++a,a先自加,值为12,在与后面的c相加,12+5=17;
第三次,a先减去c再自减,12-5=7,a的值自减后值为11;
第四次,a先自减,值为10,然后再减去c,10-5=5;
引用:是否是a++里的结果运算完后下面的运算都是用运算后的a来做初始值。即a=11了?如何避免?
答:肯定的。在后面的System.out.println(****)前面加一条a=10;就可以了

在输出语句后面加个a--

你只要搞懂a++和++a这二个运算符就可以了,加号在前面和后面的意思是不同的,加号在后面表示,先用a的值,然后下一次调用a的时候再加一. 加号在前面表示先把a的值加一然后再参与运算
减号是一样的道理.

你得看一下运算符的优先级

是的

解决办法很多啊 做完一次运算后可以将a赋回原值,或者再做一次递减a--

答案对么?

热点新闻