java的基本数据类型有关问题
java的基本数据类型问题
输出为 9.9 和12.9
问题 为什么是12.9? 值类型不是拷贝副本吗?
------解决方案--------------------
System.out.println(++y1+y2+2.9);
return ++y1+y2+2.9;
return 回去的是10.9. 最后结果12.9.
楼主认为应该是几?
------解决方案--------------------
++y1是先自增1后再参与运算,故f1是经过了自增的,故,f1在运算时为3
------解决方案--------------------
楼主难道想问的是++i 和i++的区别?
i++ 先使用然后i+1
++i 先i+1然后使用
------解决方案--------------------
------解决方案--------------------
楼主要知道,在add1方法中的y1,y2只是属于add1的局部变量,它们接收传过来的值2和4,在方法中做的运算,最后得到的y1,y2仍然是add1方法内才有效,并不会影响到传过来的参数。
这和对象传过来地址是不一样的。
- Java code
public class exec { /** * @param args */ static void add(double x,double y){ double z; z=x+y; System.out.println("z="+z); } static double add1(double y1,double y2){ System.out.println(++y1+y2+2.9); return ++y1+y2+2.9; } public static void main(String[] args) { // TODO Auto-generated method stub double f1=2,f2=4; add(f1,add1(f1,f2)); } }
输出为 9.9 和12.9
问题 为什么是12.9? 值类型不是拷贝副本吗?
------解决方案--------------------
System.out.println(++y1+y2+2.9);
return ++y1+y2+2.9;
return 回去的是10.9. 最后结果12.9.
楼主认为应该是几?
------解决方案--------------------
++y1是先自增1后再参与运算,故f1是经过了自增的,故,f1在运算时为3
------解决方案--------------------
楼主难道想问的是++i 和i++的区别?
i++ 先使用然后i+1
++i 先i+1然后使用
------解决方案--------------------
------解决方案--------------------
楼主要知道,在add1方法中的y1,y2只是属于add1的局部变量,它们接收传过来的值2和4,在方法中做的运算,最后得到的y1,y2仍然是add1方法内才有效,并不会影响到传过来的参数。
这和对象传过来地址是不一样的。