public class Test{
public static void main(String[] args){
for(int i=0;i<=0;i++)
  Integer k=new Integer(i);
  //for(int i=0;i<=0;i++)
  //{Integer k=new Integer(i);}
System.out.println("JAVA PUZZLERS");
}
}
如果for里面不加大括号就报错~加了就正常运行~~大家有没出现这种情况~

解决方案 »

  1.   

    你在好好看看你的代码,你不加大括号,你Integer k=new Integer(i)中传的参数i根本就没有定义,当然要报错啊,你加了大括号i就是直接引用的for循环中定义的变量i,好好熟悉一下变量的作用域吧
      

  2.   

    那这样子
    public class MG1{
    public static void main(String[] args){

    for(int i=0;i<=10;i++)
    System.out.println(i);
    }
    }i怎么能传递给system.out.println(i);
      

  3.   

    for的循环因子是有一个作用域的,其作用域就是for后面紧跟的那对大括号括起来的区域。如果for后面不加大括号,它后面那条语句的作用域不属于for构成的局部作用域,所以也就无法引用到仅属于该作用域中的循环因子即变量i。所以,不管for后面的语句有几条,始终加上大括号,是好的编程习惯。
      

  4.   

    对不起,我在3楼的回答有误。楼主学习精神可嘉。我觉得是这样的,循环因子i是可以给for后面的那条语句引用的(即使没有加大括号)。但是如果不加大括号,那么for后面那句的作用域和上级作用域相同。0楼的那段程序之所以不行,是因为重复定义了变量k。换成下面这样,也是可以的: Integer k;
    for(int i=0;i<=10;i++)
    k=new Integer(i);
      

  5.   

    我给楼主一些建议,我建议您最好还是看看java或c的语法书,这样会比较有帮助!!
      

  6.   


    class  helloworld{
    public static void main(String[] args) 
    {
    Integer k;
    for(int i=0;i<=10;i++){
    k=new Integer(i);
    System.out.println(k);
    }

    }
    }