1-6编程问题2

1-6编程问题2

import java.util.Scanner;

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

代码第10行如果不是空行,为什么会报错?加了换行不会报错了?

Exception in thread "main" java.util.InputMismatchException

        at java.util.Scanner.throwFor(Scanner.java:864)

        at java.util.Scanner.next(Scanner.java:1485)

        at java.util.Scanner.nextInt(Scanner.java:2117)

        at java.util.Scanner.nextInt(Scanner.java:2076)

        at ScoreDemo.main(ScoreDemo.java:11)


正在回答

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

4回答

http://img1.sycdn.imooc.com//climg/5a57312e00012acb10410760.jpg或者试一下,清空浏览器缓存,重新登录一下

  • 代码知音 提问者 #1
    那可能是缓存问题,代码加行减行都不影响的对吧,谢谢了
    2018-01-11 17:46:02
  • 好帮手慕珊 回复 提问者 代码知音 #2
    嗯,跟空行没有关系
    2018-01-11 18:34:29
提问者 代码知音 2018-01-11 17:26:41

http://img1.sycdn.imooc.com//climg/5a572d10000139d412660663.jpg

像上面这个图,可以正常运行,如果我删去上面一行空行,就会报错了如下图:

http://img1.sycdn.imooc.com//climg/5a572d720001832e12910628.jpg

如果我代码不变,切换下章节,再回到这个题目,直接运行,又是正常的。。。。如下图:

http://img1.sycdn.imooc.com//climg/5a572dc60001cd9c12720713.jpg

到底是啥问题?????????????啥也没动,再次点再试试,点提交后就这样了,成功,报错,成功,报错。。

http://img1.sycdn.imooc.com//climg/5a572ed40001845912930754.jpg

  • 把大括号删了,切换输入法到英文半角,重新输入一下试试
    2018-01-11 17:36:21
喜欢做梦的鱼 2018-01-11 15:46:15

http://img1.sycdn.imooc.com//climg/5a57162f0001e32a12140637.jpg亲测,无换行输入数字时没错误啊。。。请检查一下运行时输入的数据类型。

  • 提问者 代码知音 #1
    那奇怪了啊,我不换行他非报错……晚点我在试下
    2018-01-11 15:47:11
  • 提问者 代码知音 #2
    看我的回答,具体描述了。。搞不懂。。老师看看。。。
    2018-01-11 17:28:02
好帮手慕雪 2018-01-11 11:43:42

InputMismatchException,类型不匹配造成的。 array[i][0]=sc.nextInt();执行到这里时你输入的是什么内容,你需要输入一个整数,然后回车。祝:学习愉快

  • 提问者 代码知音 #1
    不是啊,第十行如果没换行,运行就报错,加了换行不报错…
    2018-01-11 13:34:59
  • THappy 回复 提问者 代码知音 #2
    运行了你的代码,如果输入的数据是整数的话,第十行换不换行都是可以正确执行的呀,如果输入的不是整数就会报你上面的错误~
    2018-01-11 15:47:05
  • 提问者 代码知音 回复 THappy #3
    看我的回答,具体描述了。。搞不懂。。
    2018-01-11 17:27:09
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

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

在线咨询

领取优惠

免费试听

领取大纲

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