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

编程练习题

http://img.mukewang.com/56dfc55b0001459405280455.jpg为什么这样做结果得到的是53,59,3

提问者:qq_言叶庭_0 2016-03-09 14:41

个回答

  • 黄male
    2016-03-09 15:15:21
    已采纳

    最开始score=53,进入if循环:53<60,所以进入内层的for循环,此时i=1,i<60-53(7),所以count+1=1,score+i(1)=53+1=54,而i经过i++也变为了2。
    接下来进行for的第二次循环,i=2依然小于60-score(54)=6,所以循环继续,count+1=2,score+i(2)=56,而i变成了3.
    再循环,i=3<60-score(56)=4,循环继续,count+1=3,score+i(3)=59,i++=4.
    进入下一次循环,i>60-score(59),循环不成立,终止for循环,输出结果便是53,59,3
    package com.asd1;
    
    public class text {
    public static void main(String[] args) {
    	System.out.print("请输入考试成绩信息:");
    	int score=53;
    	int count=0;
    	System.out.println("加分前的成绩:"+score);
    	for(int i=1;score<60;i++){
    		score++;
    		count++;
    		
    	}
    	System.out.println("加分后的成绩:"+score);
    	System.out.println("共加了"+count+"次!");
    }
    }

    个人觉得单层循环足够解决此题。

  • sfmf
    2016-03-09 15:29:28

    score=score+i;改成score=score+1;应该合理些吧。