老师,你好!麻烦帮忙看下这个代码有什么问题?谢谢!
1 | <br> |
import java.util.Scanner;
public class HomeWorkTest3 {
/**
* 修改指定位置的数据
* @param f
* @param index
* @param newScore
*/
public void update(float[] f,int index,float newScore) {
Scanner sc=new Scanner(System.in);
f[index]=newScore;
System.out.println("修改后:");
System.out.println("成绩为:");
for(float n:f) {
System.out.print(n+" ");
}
}
public static void main(String[] args) {
HomeWorkTest3 hwt3=new HomeWorkTest3();
Scanner sc=new Scanner(System.in);
float[] f= {98,65,75,83,87};
int index=0;
float newScore=0;
System.out.println("修改前:");
System.out.println("成绩为:");
for(float n:f) {
System.out.print(n+" ");
}
System.out.println();
do {
System.out.println("请输入要修改数据的位置(从0开始):");
try{
index=sc.nextInt();
}catch(java.util.InputMismatchException e) {
System.out.println("输入的数据类型有误,请重新输入!");
sc.next();
}
}while(index<0 | index>f.length-1);
System.out.println("请输入新数据:");
try {
newScore = sc.nextInt();
}catch(java.util.InputMismatchException e) {
System.out.println("输入的数据类型有误,请重新输入!");
sc.next();
}
hwt3.update(f,index,newScore);
}
}
正在回答 回答被采纳积分+1
同学你好,对于同学的两个问题,可以采用如下思路,这里可以编写一个方法来判断输入的是否是数字,如果不是数字,可以进行给出提示信息,返回false,如果是数字,返回true,具体如下:
然后在主方法中调用该方法,进行循环判断。
修改后的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | import java.util.Scanner; public class HomeWorkTest3 { /** * 修改指定位置的数据 * * @param f * @param index * @param newScore */ public void update( float [] f, int index, float newScore) { Scanner sc = new Scanner(System.in); f[index] = newScore; System.out.println( "修改后:" ); System.out.println( "成绩为:" ); for ( float n : f) { System.out.print(n + " " ); } } public static void main(String[] args) { HomeWorkTest3 hwt3 = new HomeWorkTest3(); Scanner sc = new Scanner(System.in); float [] f = { 98 , 65 , 75 , 83 , 87 }; int index = 0 ; float newScore = 0 ; System.out.println( "修改前:" ); System.out.println( "成绩为:" ); for ( float n : f) { System.out.print(n + " " ); } System.out.println(); do { System.out.println( "请输入要修改数据的位置(从0开始):" ); while (!hwt3.isNum(sc)) { sc = new Scanner(System.in); } index = sc.nextInt(); } while (index < 0 || index > f.length - 1 ); System.out.println( "请输入新数据:" ); while ( true ) { if (hwt3.isNum(sc)) { newScore = sc.nextInt(); hwt3.update(f, index, newScore); break ; } sc = new Scanner(System.in); System.out.println( "输入的数据类型有误,请重新输入" ); } } private boolean isNum(Scanner scanner) { if (scanner.hasNextInt()) { System.out.println( "输入的是数字" ); return true ; } else { System.out.println( "输入的不是数字,请重新输入" ); return false ; } } } |
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧