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

求教错在哪里?

public class HelloWorld {

    public static void main(String[] args) {

        int score = 53; 

        int i = 1;

        int count = 0;

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


     

        while(score <= 60){

        count += score;

            i = i++;

        } 

        System.out.println("加分后成绩:" + count);

        System.out.println("共加了" +i+ "次");

    }

}


提问者:Alxer115 2016-01-10 14:38

个回答

  • Its_forever
    2016-01-10 15:00:16
    已采纳

    public class HelloWorld {
        public static void main(String[] args) {
            int score = 53; 
            int i = 0;
            System.out.println("加分前成绩:" + score);
            while(score < 60){
    	    score++;
                i++;
            } 
            System.out.println("加分后成绩:" + score);
            System.out.println("共加了" +i+ "次");
        }
    }

    改成这样。

    你的代码

    while(score <= 60) {  //score小于等于60的时候进入循环体。
           count += score; // 这句话等效于 count = score+score. count一直加score,而score一直都是53,所以是个死循环。
          i = i++;   //执行这句话i的值一直为1.
        } 
              System.out.println("加分后成绩:" + count); //由于上面是死循环,这里两句话执行不到。
            System.out.println("共加了" +i+ "次");


  • 迷途的马尔斯
    2016-01-10 15:12:54

    你while循环里面的score的值没有改变,所以score一直小于60,死循环了

  • IMOOCER_Vi
    2016-01-10 15:05:21

    count+=score,不就变成了count=count+score,第一次count=0+53,i=2第二次就是count=53+53,1=3,然后跳出循环吗。如果你这代码意思是要一次加1分加到60分,然后计算加了多少次,应该是这样的吧

    while(score < 60){
            score += 1;
                count++;
            } 
            System.out.println("加分后成绩:" + score);
            System.out.println("共加了" +count+ "次");