java运算符问题 应该是++i吧!i++是先应用再增值,++i是先增值再运算 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ++i是可以得到4,但是这个那个java认证的题目呀.想不明白.可能与运算符结合方向和优先级有关.在c中这样写就是4. i = i++; 这样的代码根本就是有问题的,如果我同事竟然这样写代码,我绝对要求他重写!i = i++; 在Java里面它会写保留i的原始值,然后i++,i→1,然后又变成了 i = 0;所以之后i = 0我还是那句话,这样的代码绝对是垃圾,绝对需要重写! 本来 i++已经明确功能了,还多了 i = 做什么! 只能说java和c对++的实现有很大的不同c里面i=i++ --> i=expression_val;(i=0) i=i+1;(i=1)i=++i; --> i=i+1;(i=1); i=expression_val; (i=1);java如果出现这样的问题那是java的实现问题,sun没有预计到中国人会考i=i++这样的问题所以没有作这方面的测试,留下了一个逻辑上的bug TO:搂主,你说的那个问题是这样的,定义变量i并初始化它的时候,i为0,i++以后,i是为1,但i++本身还是为0,所以赋值给i以后,还是0,故最终i还是0。public class IncrementTesting { public static void main(String args[]) { int a = 0; System.out.println("value1 : " + a); System.out.println("value2 : " + a++); System.out.println("value3 : " + a); }}结果是value1 : 0value2 : 0value3 : 1 i++ 这是个单目运算,这个表达式的值就是返回i的值。而increment的操作也同时进行了,因为++的优先级高于=。而表达式i++又返回了i原来的值0(实际上此时的i应为1),这样执行赋值操作时,i又由1变成了0,后续表达式的亦同。 java中有Client这个类吗? 到底创造了几个对象??关于string的。 jTree怎样添加类别? 如何分割下面这个字符串?? 一个方法调用语句的问题 用swing如何使子窗口始终在前、使用户无法使用父窗口? 用socket编写ftp程序 用java可以做一个阻止桌面或网页上广告弹窗的软件么? 一个session的简单问题!? 急!急!急!!!关于c语言的接口! 如何让让刚刚打开的JInternalFrame对象初始为最小化? 一个关于java编码的问题?
是可以得到4,但是这个那个java认证的题目呀.想不明白.
可能与运算符结合方向和优先级有关.在c中这样写就是4.
所以之后i = 0我还是那句话,这样的代码绝对是垃圾,绝对需要重写! 本来 i++已经明确功能了,还多了 i = 做什么!
c里面i=i++ --> i=expression_val;(i=0) i=i+1;(i=1)
i=++i; --> i=i+1;(i=1); i=expression_val; (i=1);
java如果出现这样的问题
那是java的实现问题,sun没有预计到中国人会考i=i++这样的问题
所以没有作这方面的测试,留下了一个逻辑上的bug
public class IncrementTesting {
public static void main(String args[]) {
int a = 0;
System.out.println("value1 : " + a);
System.out.println("value2 : " + a++);
System.out.println("value3 : " + a);
}
}
结果是
value1 : 0
value2 : 0
value3 : 1