一个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);}
请问输出是?
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,后操作。