问答详情
源自:5-1 编程练习

为什么int score=53放在for循环里就错误了

public class HelloWorld {
    public static void main(String[] args) {
       
        // 变量保存成绩
        
       
        // 变量保存加分次数
        int count = 0;


        //打印输出加分前成绩
          System.out.println("加分前成绩:"+score);
      
       
        // 只要成绩小于60,就循环执行加分操作,并统计加分次数
       
          for(int score = 53;score<60;){
            score=score+1;
            count=count+1;
        }
        System.out.println("加分后成绩:60");
        System.out.println("共加了"+count+"次!");

       
       
       
       
       
        //打印输出加分后成绩,以及加分次数
     

    }
}


提问者:慕后端6118198 2020-02-29 22:54

个回答

  • Mr沐阳
    2020-03-07 11:48:52

    作用域问题:

      for(int score = 53;score<60;) //此处变量score作用域仅为 for循环内,当跳出 for 循环时,score会被回收
      {                            
                score=score+1;       
                count=count+1;
      }
    但入如果 把score定义在 main方法中的话,则for循环中不需再表明数据类型,直接调用main方法中的变量score即可

     如下:

    public static void main(String[] args) {
        int count = 0;        //打印输出加分前成绩          
        System.out.println("加分前成绩:"+score);// 只要成绩小于60,就循环执行加分操作,并统计加分次数                 
        for(score = 53;score<60;score++) //此时为直接调用main方法中的变量score ,作用域为整个main方法
        {                        
       count += 1;        
        }        
    System.out.println("加分后成绩:60");        
    System.out.println("共加了"+count+"次!");
    }


  • WE_Xing
    2020-03-01 18:40:49

    可以放在for循环里呀,但是你12行写了这句话

    System.out.println("加分前成绩:" + score);

    这句话前面没定义score怎么能输出去呢