public class whiletwo
{
public static void main(String[] args)
{
int sum=0;
int a=1
while(sum<5){
sum=sum+a;
a++;
System.out.println(a);
}
}}
第一步:a=1 sum=0,所以sum=0+1 ,执行a++ , 此时a还是1,所以输出结果1
第二步:a=2 sum=1,所以sum=1+2 ,执行a++, 此时a还是2,输出结果2
第三步: a=3 sum=3,所以sum=3+3>5,程序停止。
可是程序执行后的结果是 2
3
4
请问我那里错了。
求大家指正,谢谢。
第一步:a=1 sum=0,所以sum=0+1 ,执行a++ , 此时a还是1,所以输出结果1应该是:
第一步:a=1 sum=0,所以sum=0+1 ,执行a++ , 执行后a为2,所以输出结果2
public class whiletwo {
public static void main(String[] args) {
int sum = 0;
int a = 1;
while (sum < 5) {
sum = sum + a;
System.out.println(a);
a++;
}
}}
第二步:a=2 sum=1,所以sum=1+2 ,执行a++, 此时a是3,输出结果3
第三步:a=3 sum=3,循环之前sum=3,继续执行while,sum=3+3,a++此时a是4,输出结果4
第四步:sum>5,程序运行结束。
我知道a++应该先代到程序执行后才+1.题目里面我理解的是先输出1,然后+1
再帮我看下 :
public class whiletwo
{
public static void main(String[] args)
{ int a=1;
System.out.println(a++);
System.out.println(a--);
}}
这个答案是 1 第一步,先代入表达式a=1,输出1后,a=1
第二部的a-- 中的a=2,输出2后,a=1
请问我那里理解错了。谢谢。今天看书看到后面发现理解有问题,又回头看之前的,还是找不到问题。
{
public static void main(String[] args)
{
int a=1;
System.out.println(a++);//此时输出的还是a的原值,之后才加1
System.out.println(a);//第二部时,a的初值为2
System.out.println(a--);//此时输出的还是a的值,之后才减1
System.out.println(a);//相当于a--执行之后a的值
}
}
int i = 9;
System.out.println(i++);
System.out.println(++i)
这样代码看起来就明白了:public class whiletwo
{
public static void main(String[] args)
{
int sum=0;
int a=1;
while(sum<5){
sum=sum+a;
a++;
System.out.println(sum);
System.out.println("-----------------");
System.out.println(a);
}
}}
这个代码体现的是自加运算的区别; 例如a=1
对于x=a++是先运算,在赋值, x=1,a=2
对于y=++a 是先赋值,在运算,y=2,a=2 对于 sum=0,a=1 求出sum=1 ,a=2
对于 sum=1, a=2 求出 sum=3,a=3
对于 sum=3,a=3 求出 sum=6,a=4;
而要求sum<5,所以sum=6,不成立,以后停止循环