int a=10,b=4,c=20,d=6; System.out.println(a++*b+c*--d)
时间: 2024-05-20 10:15:34 浏览: 228
这行代码的输出结果为 94。
首先,根据运算符优先级,先执行 c*--d,即将变量 d 减 1,然后将 c 乘以 d 的值,得到 20*5=100。
然后,执行 a++*b,即取变量 a 的值,然后将 a 加 1,最后将 a 的值乘以变量 b 的值,得到 10*4=40。
最后,将上面两个结果相加,得到 100+40=94,即为输出结果。
相关问题
int a = 10; int b = a++; int c = a++ + a++; int d = a++ + a++ + a++; int e = a++ + a++ + a++ + a++; int f = a++ + a++ + a++ + a++ + a++; System.out.println(b);//=10 System.out.println(c);//=23 System.out.println(d);//=42? System.out.println(e);//=70? System.out.println(f);//=110?
在这段代码中,变量a的初始值为10。我们逐行分析代码:
- `int b = a++;`:首先将变量a的值赋给变量b,然后再将a的值加1,此时a的值为11,b的值为10。
- `int c = a++ + a++;`:先计算表达式右边的值,a++的值为11,然后a再自增1变为12,a++的值为12,然后a再自增1变为13,将这两个值相加得到23,赋给变量c。
- `int d = a++ + a++ + a++;`:同样先计算表达式右边的值,a++的值为13,然后a再自增1变为14,a++的值为14,然后a再自增1变为15,a++的值为15,然后a再自增1变为16,将这三个值相加得到42,赋给变量d。
- `int e = a++ + a++ + a++ + a++;`:同上,a++的值为16,然后a自增1变为17,a++的值为17,然后a自增1变为18,a++的值为18,然后a自增1变为19,a++的值为19,将这四个值相加得到70,赋给变量e。
- `int f = a++ + a++ + a++ + a++ + a++;`:同上,a++的值为19,然后a自增1变为20,a++的值为20,然后a自增1变为21,a++的值为21,然后a自增1变为22,a++的值为22,然后a自增1变为23,a++的值为23,将这五个值相加得到110,赋给变量f。
因此,最终输出的结果为:
```
10
23
42
70
110
```
练习题: // 1. int i = 3; i = i++; System.out.prinltn(“i = ” + i); // 2. int i = 3; i = ++i; System.out.println(“i = ” + i); // 3. int i = 3; int a = i++ + i++ + i++; int b = ++i + ++i + ++i; System.out.println(“i = ” + i); System.out.println(“a = ” + a); System.out.println(“b = ” + b); // 4. int i = 5; i++; System.out.println(“i = ” + i); ++i; System.out.println(“i = ” + i); int a = ++i; System.out.println(“a = ”+ a); a = a++; System.out.println(“a = ” + a); a = ++a; System.out.println(“a = ” + a); // 5. int m = 3; int n = 2 * ++m; System.out.println(“n = ”+ n); public class _07AddAdd { public static void main(String[] args) { // 声明一个int类型变量a,赋值1 int a = 1; int b = 2; // a++: 先赋值再自增 ++a:先自增再赋值 int c = a++ + ++a + b--; int d = c++ + c-- + a++ + ++b; // a = ? b = ? c = ? d = ? System.out.println("a = " + a);// a = 4 System.out.println("b = " + b);// b = 2 System.out.println("c = " + c);// c = 6 System.out.println("d = " + d);// d = 18 } }
第一个程序会输出"i = 3",因为i已经被赋值为3,再将i赋值为i,也就是赋值为3。
第二个程序会输出"i = 3",因为第二个程序和第一个程序是完全一样的。
第三个程序会输出"i = 3","a = 27","b = 27",因为a和b都被赋值为i的3次方,也就是3的3次方,也就是27。
第四个程序会输出"i = 5","i = 5","a = 5","a = 5","a = 5",因为i没有被赋值为其他值,所以它的值一直保持为5。a在被赋值为i之后也没有被赋值为其他值,所以它的值也一直保持为5。
第五个程序会输出"n = 6",因为n被赋值为2乘以m,也就是2乘以3,结果为6。
第六个程序会输出"a = 4","b = 2","c = 6","d = 18",因为a先赋值为1,再自增3次,变为4;b没有发生变化,仍为2;c等于a的3次方再加上b的2次方再减去1,即6;d等于c的3次方再减去1再加上a的2次方再加上b的2次方,即18。
阅读全文