二维数组,线程中的异常 "main" java.util.InputMismatchException



我有一个小问题。我需要读一行中的两个单词,分别是put name和lastname。

public void Promedios5(){
    Scanner Marbis=new Scanner(System.in);
    String[] x=new String[5];
    double[][] a=new double[5][4];
    double[] b=new double [5],c=new double[5];
    System.out.println("Este programa genera los promedios de las notas de cuatro unidadesn"
            + "se le solicitarán a usted, el nombre y las cuatro notas");
    System.out.println("Podría ingresarlas ahora por favor:");
    for(int y=0;y<=4;y++){
        System.out.println("Ingrese el nombre:");
        x[y]=Marbis.nextLine();
        for(int z=0;z<=3;z++){
            a[y][z]=Marbis.nextDouble();
        }
        b[y]=a[y][0]+a[y][1]+a[y][2]+a[y][3];
        c[y]=b[y]/4;
    }
    System.out.println("Ahora usted verá los promedios de las personas:");
    System.out.println("Nombre:tttPromedio");
    for(int m=0;m<=4;m++)
        System.out.printf("%s:tt%.2fn",x[m],c[m]);
}

这里我有错误:x[y]=Marbis.nextLine();
我知道我在一行中用它来表示两个或多个单词,但在第二次机会中,它会标记我错误,如下所示(这就是结果,我认为我可以在下一行中使用数组(:

MArio Albert
100
100.00
78.00
100.00
Ingrese el nombre:
John Antoinie
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.nextDouble(Scanner.java:2413)
    at vectormarbis1.MarbisVectors2.Promedios5(MarbisVectors2.java:125)
    at vectormarbis1.VectorMarbis1.main(VectorMarbis1.java:28)
C:UsersManoloAurelioAppDataLocalNetBeansCache8.1executor-snippetsrun.xml:53: Java returned: 1
BUILD FAILED (total time: 39 seconds)

您只能在Java中flush输出。

何时丢弃线路的其余部分?要解决您的问题,您可以致电

input.nextLine();

您需要在nextDouble()之后这样做,因为您希望从下一行开始阅读。

我希望下面给出的代码能帮助你解决问题。

public void Promedios5(){
  Scanner Marbis=new Scanner(System.in);
  String[] x=new String[5];
  double[][] a=new double[5][4];
  double[] b=new double [5],c=new double[5];
  System.out.println("Este programa genera los promedios de las notas de cuatro unidadesn"
  + "se le solicitarán a usted, el nombre y las cuatro notas");
  System.out.println("Podría ingresarlas ahora por favor:");
  for(int y=0;y<=4;y++){
    System.out.println("Ingrese el nombre:");
    x[y]=Marbis.nextLine();
    for(int z=0;z<=3;z++){
      a[y][z]=Marbis.nextDouble();
    }
    Marbis.nextLine();    //Just add this line here
    b[y]=a[y][0]+a[y][1]+a[y][2]+a[y][3];
    c[y]=b[y]/4;
  }
  System.out.println("Ahora usted verá los promedios de las personas:");
  System.out.println("Nombre:tttPromedio");
  for(int m=0;m<=4;m++)
  System.out.printf("%s:tt%.2fn",x[m],c[m]);
}

相关内容

  • 没有找到相关文章

最新更新