如何实现控制输入的成绩在0~100中间?

来源:6-1 什么是数组

qq_北七_1

2017-07-10 18:52

int clsaaNum=3;//保存班级的数量
		int stuNum=4;//保存学生数量
		double sum=0;//班级总成绩
		double avg=0;//班级平均分
		int score =0;
		Scanner input=new Scanner(System.in);//创建Scanner对象
		
		for(int i=1;i<=3;i++) { //外层循环
			sum=0;
			System.out.println("——请输入第"+i+"个班级的成绩:——");
			
			for(int j=1;j<=stuNum;j++) {       //内层循环
				
  				System.out.print("请输入第"+j+"个学生的成绩:");
  				 score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩
  				
  				sum+=score;       //个人成绩累加总和

			}

			avg=sum/stuNum;
				System.out.println("班级平均分是:"+avg);
		}		
	}

}


写回答 关注

8回答

  • 走马行酒里
    2017-07-27 19:28:22

    首先判断输入的内容是整类  如果是整形,向下执行代码

    while(!sc.hasNextInt()){//不是整形 执行循环是整形 跳出循环

    System.out.println("输入数据有误,请重新输入");//不是整形 给出提示,

    sc.next();//继续输入

    }

    然后判断输入的数据是否在1-100

  • 三十二应遍尘刹
    2017-07-24 12:24:48
    int clsaaNum=3;//保存班级的数量
            int stuNum=4;//保存学生数量
            double sum=0;//班级总成绩
            double avg=0;//班级平均分
            int score =0;
            Scanner input=new Scanner(System.in);//创建Scanner对象
             
            for(int i=1;i<=3;i++) { //外层循环
                sum=0;
                System.out.println("——请输入第"+i+"个班级的成绩:——");
                 
                for(int j=1;j<=stuNum;j++) {       //内层循环
                     
                      System.out.print("请输入第"+j+"个学生的成绩:");
                       score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩
                       while(score>100||score<10){
                       System.out.println("您输入的成绩有误!请重新输入(0~100):");
                        score=input.nextInt();
                        }
                      sum+=score;       //个人成绩累加总和
     
                }
     
                avg=sum/stuNum;
                    System.out.println("班级平均分是:"+avg);
            }      
        }
     
    }
    /*在你写的代码间加一个while循环判断输入的数据是否是0到100之间,如果不是,则提示输入错误并要求重新输入,直到输入正确才跳出循环。希望对你有帮助*/

  • 三十二应遍尘刹
    2017-07-24 12:23:42

    int clsaaNum=3;//保存班级的数量

            int stuNum=4;//保存学生数量

            double sum=0;//班级总成绩

            double avg=0;//班级平均分

            int score =0;

            Scanner input=new Scanner(System.in);//创建Scanner对象

             

            for(int i=1;i<=3;i++) { //外层循环

                sum=0;

                System.out.println("——请输入第"+i+"个班级的成绩:——");

                 

                for(int j=1;j<=stuNum;j++) {       //内层循环

                     

                      System.out.print("请输入第"+j+"个学生的成绩:");

                       score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩

                       while(score>100||score<10){

                       System.out.println("您输入的成绩有误!请重新输入(0~100):");

                        score=input.nextInt();

                        }

                      sum+=score;       //个人成绩累加总和

     

                }

     

                avg=sum/stuNum;

                    System.out.println("班级平均分是:"+avg);

            }      

        }

     

    }

    /*在你写的代码间加一个while循环判断输入的数据是否是0到100之间,如果不是,则提示输入错误并要求重新输入,直到输入正确才跳出循环。希望对你有帮助*/

  • qq_北七_1
    2017-07-11 18:14:42

    public static void main(String[] arg) { 



    int clsaaNum=3;//保存班级的数量

    int stuNum=4;//保存学生数量

    double sum=0;//班级总成绩

    double avg=0;//班级平均分


    Scanner input=new Scanner(System.in );//创建Scanner对象

    for(int i=1;i<=3;i++) { //外层循环

    sum=0;//成绩清零

    System.out.println("——请输入第"+i+"个班级的成绩:——");

    for(int j=1;j<=stuNum;j++) {       //内层循环


      System.out.print("请输入第"+j+"个学生的成绩:");

     

      int score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩

      while(score<0||score>100) {

      System.out.print("上一成绩信息无效,请输入正确的成绩:");

      score =input.nextInt();

       

      }

       

      sum+=score;       //个人成绩累加总和

    }

     avg=sum/stuNum;

    System.out.println("班级平均分是:"+avg);

    }

    }


  • qq_馒头_27
    2017-07-10 19:35:46

    代码没错,我能运行啊

  • vortesnail
    2017-07-10 19:32:38
    for(int j=1;j<=stuNum;j++) {       //内层循环
        System.out.print("请输入第"+j+"个学生的成绩:");
        score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩
        if(score < 0 && score > 100){
            System.out.print("输入有误,请重新输入:") 
            score =input.nextInt();                  
        }
        sum+=score;       //个人成绩累加总和
    }
    这样就行了,只是缺少个提示而已,手动输入不存在控制输入范围的,只能客观的给予提醒!


    X我思故我在 回复X我思故我在

    if(score > 0 || score < 100)这样才对

    2017-09-24 22:34:49

    共 4 条回复 >

  • vortesnail
    2017-07-10 19:31:01

    for(int j=1;j<=stuNum;j++) {       //内层循环

                      System.out.print("请输入第"+j+"个学生的成绩:");

                       score =input.nextInt();//通过Scanner对象的nextInt获取学生个人成绩

                       if(score < 0 && score > 100){

                            System.out.print("输入有误,请重新输入:") 

                            score =input.nextInt();                  

    }

                      sum+=score;       //个人成绩累加总和

     

                }

    这样就行了,只是缺少个提示而已,手动输入不存在控制输入范围的,只能客观的给予提醒!

  • AkaDovE
    2017-07-10 19:25:27

    输入时手动输入的啊 不存在控制的问题

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165550 学习 · 17586 问题

查看课程

相似问题