老师,帮忙看看代码可以优化吗? 还有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 星