一个java问题,急需讲解

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:04:00
帮忙讲解下
public class exam{ public staic void main(string[] args)
{int m=3,n=6,k=0;
while((m++)<(n--))
++k;
system.out.println(k);}
请问输出是?

一元运算符如果在前面先执行运算,如果在后面是先使用变量后再运算,所以这个程序输出为:
while(3<6) k=1 3++ 6--
while(4<5) k=2 4++ 5--
while(5>4) 结束循环 输出:
2

上面的例子中m++和n--符号在后,先比较再进行加减所以
结果为2
第一次3<6
第二次4<5
第三次5<6不成立

如果改成++m<--n
结果就为1

天哪~ 输出肯定是error

编译的不过的。

程序订正如下:
public class Exam {
public static void main(String[] args) {
{
int m = 3, n = 6, k = 0;
while ((m++) < (n--))
++k;

System.out.println(k);

}
}
}

如果println在while里的话
结果:1
2

否则结果:
2

输出为:2
m++先使用后加一
++k先加一后使用

2

输出是 2

错误1:staic --》static
错误2:system--》System

while((3++)<(6--)) ++0 (此时K=1);
之后
while((4++)<(5--)) ++1 (此时K=2);
之后
while((5++)<(4--))

m++,指先操作,后加1
++m,指先加1,后操作。