public class Test
{
public static void main(String args[])
{
int i=13,j=10;
if(i-->j)
i++;
else j--;
System.out.println(i+"\t"+j);
}
}
同学,你应该明白的是这道练习,不是关于循环语句的问题。而是if...else 语句和自增与自减的问题。
首先。你要搞明白自增中两个++号在前和在后的区别:
例如:int a = 3;b = 1;
b = ++a;//l两个++号在前面的运算过程相当于 先a = a+1 然后再把a+1的值重新赋值给了原来的a,这时原来的a发生了变化就变成了 a = 4 ;最后进行赋值把a的值赋值给b。b = 4.
b = a++ //两个++号在后面的运算过程:先将a变量中的数据,进行临时存储,temp =a 就是说临时存储的a数值还是3.然后再进行自增,那么a = a+1 a = 4;最后赋值给b的是临时存储的a = 3. 而不是自增后的值。
再看上面那道练习:
int i=13,j=10;
if(i-->j)//这里是i-- 那么就是i变量中的数据,进行临时存储,再自减。最后赋值的是临时存储的值。
i++;//这里i++没有进行赋值,那么最后打印输出的就是自增后的结果。
else j--;
System.out.println(i+"\t"+j);
还有要明确的是if ... else语句是如果...否则 意味着两个语句肯定有一个会执行。就例如if()这个大括号里面满足条件判断为true就执行i++不执行else下面的i--。.如果if()大括号里面不满足条件判断为false就不执行i++而是执行else下面的i--。
|