关于#java#的问题,请各位专家解答!

回车有时可以有时不可以结束输入,怎么回事呀

img

img


public static void p44()
    {
        Scanner sr=new Scanner(System.in);
        int b=0,c=0,d=0;
        for(;;)
        {
          Double a= sr.nextDouble();
            if(a<=0)
            {
                break;
            }
            if(a>=85)
            {
                b++;
            }
            if(a>=60&&a<85)
            {
                c++;
            }
            if(a<60)
            {
                d++;
            }
        }
        System.out.println(">=85:"+b);
        System.out.println("60-84:"+c);
        System.out.println("<60:"+d);
    }

根据你贴出的第9-11行代码,输入小于等于0才能结束for的循环,所以如果输入的数大于0就会一直获取输入,如果输入了小于等于0的数,循环结束然后打印结果 ,测试代码如下:

import java.util.Scanner;

public class ScoreCountTest {

public static void p44()
    {
        Scanner sr=new Scanner(System.in);
        int b=0,c=0,d=0;
        for(;;)
        {
          Double a= sr.nextDouble();
            if(a<=0)
            {
                break;
            }
            if(a>=85)
            {
                b++;
            }
            if(a>=60&&a<85)
            {
                c++;
            }
            if(a<60)
            {
                d++;
            }
        }
        System.out.println(">=85:"+b);
        System.out.println("60-84:"+c);
        System.out.println("<60:"+d);
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        p44();
    }

    
}


img

回车并不会结束运行,nextDouble是读取你输入的double值,其他的都不会读取,你的代码里是读到0才会结束