为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 回答

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

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

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

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

}

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

0 回复 有任何疑惑可以回复我~
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之间,如果不是,则提示输入错误并要求重新输入,直到输入正确才跳出循环。希望对你有帮助*/

0 回复 有任何疑惑可以回复我~

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之间,如果不是,则提示输入错误并要求重新输入,直到输入正确才跳出循环。希望对你有帮助*/

0 回复 有任何疑惑可以回复我~

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);

}

}


0 回复 有任何疑惑可以回复我~

代码没错,我能运行啊

0 回复 有任何疑惑可以回复我~
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;       //个人成绩累加总和
}
这样就行了,只是缺少个提示而已,手动输入不存在控制输入范围的,只能客观的给予提醒!


0 回复 有任何疑惑可以回复我~
#1

vortesnail

&&换成|| 这里写错了,一定要改过来啊
2017-07-10 回复 有任何疑惑可以回复我~
#2

学海有涯吗 回复 vortesnail

score =input.nextInt(); 这行代码 为什么出现了两次 第二次出现有什么含义吗
2017-07-26 回复 有任何疑惑可以回复我~
#3

X我思故我在

if(score < 0 && score > 100) score小于0且score大于100? if(score > 0 && score < 100)这样才对
2017-09-24 回复 有任何疑惑可以回复我~
#4

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

if(score > 0 || score < 100)这样才对
2017-09-24 回复 有任何疑惑可以回复我~
查看1条回复

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;       //个人成绩累加总和

 

            }

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信