java中三个加号(减号)的程序阅读题,你能做对吗?
来源:互联网 发布:js中trim的用法 编辑:程序博客网 时间:2024/04/28 13:30
一、
int m1=10,m2=10,m3=8;
m3 *= m1+++m2;
System.out.println("m3:" + m3);
二、
int t = testM(10);
System.out.println("testM:" + t);
private int testM(int m) {
//System.out.println("testm:" + m);
if(1 > m)
return 0;
else
return m---testM(m);// 如果改成m-(--testM(m))呢
}
请大家想下运行的过程以及可能的结果
一、m3:160
解析:1)单目运算符优先级高于双目运算符
2)++运算符从左到右结合
m3 *= (m1++)+m2;//运算后m1的值是11了
m3 *= 20;
m3 = 8*20 = 160
错误理解:
1)m3 *= m1+(++m2);// 这样算出168
2) (m3*=m1++)+m2;//错误The left-hand side of an assignment must be a variable
3)(m3*=m1)+++m2;//错误1Invalid argument to operation ++/--,错误2Syntax error on token "+", invalid AssignmentOperator
二、testM:5
解析:原理和第一题一样
(m--)-testM(m);
testM(10) = 10 - testM(9) = 5
testM(9) = 9 - testM(8) = 5
testM(8) = 8 - testM(7) = 4
testM(7) = 7 - testM(6) = 4
testM(6) = 6 - testM(5) = 3
testM(5) = 5 - testM(4) = 3
testM(4) = 4 - testM(3) = 2
testM(3) = 3 - testM(2) = 2
testM(2) = 2 - testM(1) = 1
testM(1) = 1 - testM(0) = 1
错误理解:
1) m-(--testM(m))// Invalid argument to operation ++/--
2) m-testM(m);//testM(10) = 10 - testM(10) 栈溢出:java.lang.StackOverflowError
- java中三个加号(减号)的程序阅读题,你能做对吗?
- 你能做对吗?
- 简单的冒泡排序,你能做对吗?
- 看看国外的javascript题目,你能全部做对吗?
- 看看国外的十三道 JavaScript 题,你能全部做对吗?
- shell中冒号结合等号, 加号, 减号的使用小结
- Object-c中 函数前面的 加号 减号
- js 实现ReplaceAll(包含加号、减号的处理)
- js 实现ReplaceAll(包含加号、减号的处理)
- 我做的对吗
- iOS加号和减号函数的区别
- objective-c 方法加号(+) 减号(-)
- 第一次能把事情做对吗?
- java中+(加号)的作用区分
- object-C 中函数前面加号和减号(+和-)的区别
- 静静,你的选择对吗
- 加号和减号
- 加号展开、减号收缩
- cocos2d-x v2.0 gles v2.0 版本下android交叉编译HelloCpp
- C03-Java同步实践加强班第14周上机任务
- javascript 函数(function)
- gets()与getchar() 区别 用法
- cygwin cocos2d-x testCpp 编译问题
- java中三个加号(减号)的程序阅读题,你能做对吗?
- 波特率与晶振
- ACM--Children’s Queue
- HTTP中的重定向和请求转发的区别
- 我们从未逃离北上广
- 生成器模式浅谈
- 排序 -- 冒泡排序
- Java JscrollPane 设置透明 跟 Jlist 设置透明
- 使用matlab对训练样本图像降维,并对测试图像使用变换矩阵降维并重构