老师帮我看下,代码哪里还能优化或者建议

老师帮我看下,代码哪里还能优化或者建议

import java.util.Scanner;
public class ScoreDemo{
   public static void main(String[] args){
       //定义一个三行两列的整型二维数组intArray
       int[][] intArray=new int[3][2];
       String[] chenji={"语文","数学"};
       //从键盘输入学生成绩,要求输入顺序与效果图一致
       Scanner sc=new Scanner(System.in);
       for(int i=0;i<intArray.length;i++){
           for(int j=0;j<intArray[i].length;j++){
               System.out.println("请输入第"+(i+1)+"个学生的"+chenji[j]+"成绩");
               intArray[i][j]=sc.nextInt();
           }
       }

       //求语文的总成绩和平均分
       for(int j=0;j<intArray[0].length;j++){
           int total=0,aev=0;
           for(int i=0;i<intArray.length;i++){
               total+=intArray[i][j];
           }
           aev=total/(intArray.length);
           System.out.println(chenji[j]+"的总成绩为:"+total);
           System.out.println(chenji[j]+"平均分为:"+aev);
           //求数学的总成绩和平均分

       }
   }
}


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

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

2回答
好帮手慕珊 2017-06-25 17:11:27

语文的总成绩用一个循环完成就可以了,如:

 for(int i=0;i<intArray.length;i++){
               total+=intArray[i][j];//此处intArray[i][j]改为 intArray[i][0]
 }

然后在循环外求语文平均值。

数学成绩的求法类似。

输入成绩的时候也用这种方式去优化,不用双重循环,一个循环就可以了。只要理解语文成绩表示时第二个[]内的值总是0,而数学总是1就行

祝学习愉快!

  • 提问者 丶J丶 #1
    我用双重循环是直接把数学的也循环出来了,我想的是假如还有英语、地理、历史什么的不是要写5个课程的循环么,所以直接一个双重循环直接全部出来。这样子代码不是更好么= =,难道是我想多了,是不是双重循环占用的运算资源会多点所以都用单循环
    2017-06-25 17:16:11
  • 好帮手慕珊 回复 提问者 丶J丶 #2
    双重循环运行的次数多,所以占用的资源也多。
    2017-06-25 17:25:18
  • 提问者 丶J丶 回复 好帮手慕珊 #3
    意思是,不管后面是不是还有英语、地理、历史都用单循环吗,相同场景下得到相同的效果,单循环加起来也有那么多啊。 老师,您没有回答我这个题目的场景啊,我知道运行次数多肯定占用资源,但是假如单循环加起来的次数不比多循环少不是用多循环一样吗,代码还简洁。
    2017-06-25 18:18:37
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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