for(int i=0;i<Condition;i++)
 {
 S = S + i; //在这里面调用i,因为i是在for中声明得
 
}

解决方案 »

  1.   

    因为你是在for中定义的i,i的作用域就只有在这个for的复合语句的范围里,除非你在for之前就定义了i。
      

  2.   

    java就是这样规定的
    这一点可能与c不一样
      

  3.   

    就是没有定义s
    你为什么不这样写呢?
    int i,S=0;//初始化
    for(i=0;i<condition;i++)
    {
    }
    S=S+i;
      

  4.   

    ustbzhangwei(wei) :这点好像C也是这样的吧!
    探讨
      

  5.   

    在java如果变量在{}里面定义.那么它的作用范围也只是在{}里面的啊.
      

  6.   

    java和c都是这样。
    我知道的只有微软的VC才可以在花括号外使用,所以说微软的人都是‘天才’嘛!
      

  7.   

    我怎么记得C里,在for中定义的整个函数中都有效的?!
      

  8.   

    int i
    的作用范围只在定义它的花括号内
      

  9.   

    把int i=0;放在for外面定义就可以了
      

  10.   

    关于这个问题 这种形式的i在java与c/c++中的作用域有贴子讨论过,
    确是不一样的
    在c中不能这样定义,必须放在前面,c++中这样定是大括号之外也可见。http://expert.csdn.net/Expert/topic/2503/2503280.xml?temp=.939892