请问 内重循.length为什么要-1

请问 内重循.length为什么要-1

public class bianChengTest {
   public static void main(String[] args) {
       //在一个二维数组中存放了三名学生的语文和数学的成绩,从键盘输入三名学生的成绩存储到二维数组中,分别求语文和数学的总成绩及平均分并输出。
   int[][] stu=new int[3][2];
       int chineseSum=0,mathSum=0;
       for (int i = 0; i <stu.length ; i++) {
           for (int j = 0; j <stu[i].length-1 ; j++) {
               System.out.println("请输入第"+(i+1)+"个同学语文成绩:");
               Scanner sc = new Scanner(System.in);
               stu[i][j]=sc.nextInt();
               System.out.println("请输入第"+(i+1)+"个同学数学成绩:");
               Scanner c = new Scanner(System.in);
               stu[i][j+1]=c.nextInt();
           }

       }
       for (int i = 0; i <stu.length ; i++) {
           for (int j = 0; j <stu[i].length-1 ; j++) {
               chineseSum+=stu[i][0];
               mathSum+=stu[i][1];
           }


       }System.out.println("语文总成绩为:"+chineseSum);
       System.out.println("语文平均分为"+(chineseSum/3));
       System.out.println("数学总成绩为:"+mathSum);
       System.out.println("语文平均分为"+(mathSum/3));

   }
}

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

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

1回答
一叶知秋519 2017-11-06 16:22:11

如果不减一的话,会出现数组越界的错误;祝学习愉快~

  • 提问者 精慕门2483598 #1
    是这样的 疑问是列数长度应该是2呀 不太明白为什么要减1~
    2017-11-06 16:23:40
  • 提问者 精慕门2483598 #2
    内重循环不是应该控制列数么 -1后内重循环就循环一次了么
    2017-11-06 16:26:56
  • 一叶知秋519 回复 提问者 精慕门2483598 #3
    因为数学成绩处是stu[i][j+1]=c.nextInt(); ,语文成绩占一列,数学成绩占一列。
    2017-11-06 17:12:13
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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