public float[] initScore() {}方法中的异常怎么写

public float[] initScore() {}方法中的异常怎么写

package com.Imooc.scoremanage;


import java.util.InputMismatchException;

import java.util.Scanner;


/**

 * 

 * 在主方法中定义菜单,并定义方法完成对学生成绩的管理,学生成绩存放在数组中。

 * @author 颜灏澜

 *

 */

public class ScoreManage {

//显示菜单的方法

public void displayMenu() {

System.out.println("***********************");

System.out.println("1-初始化数学成绩");

System.out.println("2-求成绩的平均值");

System.out.println("3-统计成绩大于85的人数");

System.out.println("4-打印输出所有成绩");

System.out.println("0-退出");

System.out.println("***********************");

}

/**

* 定义一个初始化数学成绩的方法,数组的长度和元素均由键盘输入

* @return 接收成绩的数组

*/

public float[] initScore() {

int l=0;

float[] s = null;

Scanner sc=new Scanner(System.in);

System.out.println("请输入要存储的数学成绩的数量");

l=sc.nextInt();

for(int i=0;i<l;i++) {

System.out.println("请输入第" + (i + 1) + "个成绩");

s[i]=sc.nextFloat();

}

return s;

}

/**

* 定义一个求平均成绩的方法

*/

public float average(float[] f) { 

float sum=0;

for(int i=0;i<f.length;i++)

sum+=f[i];

return sum/(f.length);

/**

* 定义一个统计成绩大于85分的人数的方法

*/

public int count(float[] f) { 

int count=0;

for(float n:f) {

if(n>85)

count++;

}

return count;

}

/**

* 修改指定位置处成绩的方法

*/

public void update(float[] f, int index, float newScore) { 

f[index]=newScore;

}

/**

* 打印输出所有成绩的方法

*/

public void displayAllScore(float[] f) { 

for(float n:f)

System.out.print(n+" ");

}

public static void main(String[] args) {

ScoreManage sm=new ScoreManage();

int input;

int index;

float newScore;

float[] f=null;

Scanner sc=new Scanner(System.in);

while(true) {

sm.displayMenu();

System.out.println("请输入对应的数字进行操作:");

try {

input = sc.nextInt();

}catch(InputMismatchException e) {

System.out.println("输入的数据格式有误,不能有非数字");

sc.next();

continue;

}

if (input == 0) {

System.out.println("退出程序!");

break;

}

switch (input) {

case 1:

f=sm.initScore();

break;

case 2:

if(f!=null) {

System.out.println("平均分为"+sm.average(f));

}else {

System.out.println("还未插入成绩,请重新选择操作");

}

break;

case 3:

if(f!=null) {

sm.count(f);

}else {

System.out.println("还未插入成绩,请重新选择操作");

}

break;

case 4:

if(f!=null) {

System.out.println("请输入要修改数据的位置(从0开始)");

try {

index=sc.nextInt();

System.out.println("请输入新数据");

newScore=sc.nextFloat();

}catch(InputMismatchException e){

System.out.println("输入数据格式有误,不能有非数据");

sc.next();

break;

sm.update(f, index, newScore);

}else {

System.out.println("还未插入成绩,请重新选择操作");

}

break;

case 5:

if(f!=null) {

sm.displayAllScore(f);

}else {

System.out.println("还未插入成绩,请重新选择操作");

}

break;

}

}

}


}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小脸 2020-09-01 09:49:24

同学你好,

1、public float[] initScore() {}方法中的异常怎么写?

答:是指输入非数字的InputMismatchException异常吗?如果是,需对异常信息进行捕获。可以使用try{} 对键盘输入的代码进行捕获,并在catch中加上sc.next()方法以及错误提示语句。修改如下:

http://img1.sycdn.imooc.com//climg/5f4da85a099d984507150688.jpg

2、为避免出现空指针异常,不应使用空值去调用,如下这里应修改为:

http://img1.sycdn.imooc.com//climg/5f4da88d095ada9204990292.jpg

上述内容修改后,同学再试试。

3、包名的单词全部小写,如:com.Imooc.scoremanage应更改为com.imooc.scoremanage

祝学习愉快~


提问者 颜灏澜 2020-08-31 20:13:54

谁帮忙调试一下啊,老师能加下我微信吗17775711041

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师