public class MianShi
{
public static void main(String[] args) {
        int a = 4;
        
        for (int i = 0; i < a; ++i)
        {
            System.out.println(i);
            for (int h = 0; h < a - i; ++h) 
            {
                System.out.print(" ");
            }
            for (int j = 0; j < 2 * i  + 1; ++j) 
            {
                
                System.out.print("*");
            }
            System.out.println();
            
        }    }
}
问什么输出i的值是:0 1 2 3 呀?for(int i=0;i<a;++i)经过这个之后i不是变成1了吗?应该输出1 2 3 4 才对吧?本以为这块知识都掌握了,今天看了这个程序之后突然有了这个疑问了,晕谁能告诉一下怎么回事呀???

解决方案 »

  1.   

    for语句的执行流程没有搞清楚:
    1、首先执行语句1    int i = 0;  
    2、判断循环条件:   i  <  a
    3、执行循环体,也就是for大括号内部的代码
    4、执行语句3:  ++i
    5、转到第二步
      

  2.   

    0——0<a——进入循环体——++
    1——1<a——进入循环体——++
    2——2<a——进入循环体——++
    3——3<a——进入循环体——++
      

  3.   

    楼主,这个跟++i,i++有什么关系,for里的自增用哪个都一样。借你地儿问下:到底for里用++i好还是i++好?有效率的差别吗?
      

  4.   

    for(i=0;i<a;i++)和for(i=0;i<a;++i)效果一样。for(i=0;i<a;i++)的意思其实是:
     i=0; i<a;
     执行的语句;
       然后i++.这个时候i++ 和++i效果一样啊