黑马程序员技术交流社区

标题: 今天遇到了一个小问题,通过一段简单的代码来描述一下。 [打印本页]

作者: 夏一站    时间: 2013-6-7 21:15
标题: 今天遇到了一个小问题,通过一段简单的代码来描述一下。

简单的求和算法中

  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>
复制代码

作者: 郭向阳    时间: 2013-6-7 22:41
for循环中的内的那俩标点就是语法规则啊,这个不能变,还有那个i变量定义在内部作用域变小,节省内存。
作者: 十字路口    时间: 2013-6-8 13:25
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.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2