老师,帮忙看看代码可以优化吗? 还有switch和if-else 哪个更有效率些呢?
package test;
import java.util.Scanner;
public class ErWeiShuZhu {
public static void main(String[] args) {
//定义一个三行两列的整型二维数组intArray
final int STUDENTNUM = 3, SUBJECT = 2;
final int YUWEN = 0, SHUXUE = 1;
int[][] intArray = new int[STUDENTNUM][SUBJECT];
int sumOfYuwen = 0, sumOfShuxue = 0;
int average_Yuwen, average_Shuxue;
//从键盘输入学生成绩,要求输入顺序与效果图一致
Scanner sc = new Scanner(System.in);
for (int i = 0; i < intArray.length; i ++) {
for (int j = 0; j < intArray[i].length; j++) {
String subjectName = "";
switch (j) {
case YUWEN:
subjectName = "Yuwen";
break;
case SHUXUE:
subjectName = "Shuxue";
break;
}
System.out.printf("Please input the %d student's %s marks: \n", i+1, subjectName);
intArray[i][j] = sc.nextInt();
}
// 计算语文和数学的总分
sumOfYuwen += intArray[i][YUWEN];
sumOfShuxue += intArray[i][SHUXUE];
}
sc.close();
//计算语文和数学的平均分
average_Yuwen = sumOfYuwen / intArray.length;
average_Shuxue = sumOfShuxue / intArray.length;
//打印结果
System.out.printf("Yuwen total is: %d\n", sumOfYuwen);
System.out.printf("Yuwen average is: %d\n", average_Yuwen);
System.out.printf("Shuxue total is: %d\n", sumOfShuxue);
System.out.printf("Shuxue average is: %d\n", average_Shuxue);
}
}0
收起
正在回答
2回答
同学你好,如果每个学生有多门课程,是建议使用循环嵌套呢~
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
吃吃吃鱼的猫
2019-07-25 11:21:58
同学你好,代码写的不错,但可以进行优化,使用一个循环输入每个学生的成绩即可。
关于switch-case与if-else的效率问题,两者效率相差不大,都可以使用。
关于优化的代码,同学可以参考如下链接:
https://class.imooc.com/course/qadetail/114257
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星