老师,帮忙看看代码可以优化吗? 还有switch和if-else 哪个更有效率些呢?

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

}


正在回答

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

2回答

同学你好,如果每个学生有多门课程,是建议使用循环嵌套呢~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-07-25 11:21:58

同学你好,代码写的不错,但可以进行优化,使用一个循环输入每个学生的成绩即可。

关于switch-case与if-else的效率问题,两者效率相差不大,都可以使用。

关于优化的代码,同学可以参考如下链接:

https://class.imooc.com/course/qadetail/114257

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 weixin_慕勒8187086 #1
    谢谢回复,看了下链接的代码。 这里还有个疑问,如果每个学生有多门课程,是用循环嵌套优化还是就用一个循环优化一些?比如有6门课, 如果用一个循环输入学生成绩, 后面就要写j+1, j+2.。。。,j+5,每个都要加上 sc.nextInt(), 这样的话是不是增加了代码的重复性?
    2019-07-25 11:45:13
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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