A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


简单的求和算法中

  1. <P>public class sum {
  2. public static void main(String[] args){
  3. int i=0,sum=0;
  4. for(i<=10;i++)
  5. {
  6. sum+=i;
  7. }
  8. System.out.println("1+2+3....+10=" +sum);
  9. }
  10. }</P>
  11. <P>在这段代码中,并不能运行下面且看另一段基本一模一样的代码:</P>
复制代码

  1. <P>public class sum {
  2. public static void main(String[] args){
  3. int i=0,sum=0;
  4. for(;i<=10;i++)
  5. {
  6. sum+=i;
  7. }
  8. System.out.println("1+2+3....+10=" +sum);
  9. }
  10. }</P>
  11. <P>在这里就能运行了。仔细研究之下。区别在于for(i<=10;i++)与for( ; i<=10;i++)。个人理解,虽然前面定义了int i=0;但是,在for里面它识别不出来。所以错误就在于此。为了避免这样错误的出现,这样写或许会更有效些for(int i=0;i<=10;i++)</P>
  12. <P> </P>
复制代码

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

3 个回复

正序浏览
for(i<=10;i++)
楼主写的这个for循环,编译都通不过,肯定是不能运行的,for(; ;)里面要有两个冒号,这是语法规则,不论是c++,c,还是java都要这么写。至于楼主的理解:虽然前面定义了int i=0;但是,在for里面它识别不出来。个人认为有误,前面在main定义的int i,当然是作用在整个main方法中,for可以识别。所以只要符合语法规则for(;i<=10;i++)也是正确的,这也说明for可以识别main中定义的变量i.
回复 使用道具 举报
for循环中的内的那俩标点就是语法规则啊,这个不能变,还有那个i变量定义在内部作用域变小,节省内存。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马