Java-Scanner没有接受输入

时间:2015-03-05 19:41:14

标签: java arrays exception sum

在这个程序中,我试图获得行和的总和。矩阵列。

这是我的代码:

import java.util.Scanner;
public class RowSum {
int xin=0, run;
int [][]mun;int[] b;int[] c;

public void inputarray(int m,int n)
{
System.out.println("Enter number");
Scanner xam=new Scanner(System.in);
run=xam.nextInt();
mun[m][n]=run;
m--;n--;
if(n!=0 && m!=0)
{
inputarray(m,n);
}
xam.close();
}
public void sum_rows_columns(int m, int n){
b[xin]=0;c[xin]=0;
b[xin]=b[xin]+mun[m][n];
c[xin]=b[xin]+mun[n][m];        
++xin;
n--; m--;
if(n!=0 && m!=0)
{
sum_rows_columns(m,n);
}
}
public void PrintSumArray(int m,int n)
{
System.out.println("sum of" + xin + "row " +b[xin]);
System.out.println("sum of" + xin + "column " +c[xin]);
n--;
m--;
if(n!=0 && m!=0){
    PrintSumArray(m,n);
}
}
}

这是主要的课程

import java.util.Scanner;
public class MatrixSum {

public static void main(String[] args){
int m,n;
String S1="Enter number of rows";
String S2="Enter number of columns";
System.out.println(S1);
Scanner inpu=new Scanner(System.in);
n=inpu.nextInt();
System.out.println(S2);
Scanner inp=new Scanner(System.in);
    m=inp.nextInt();
            inp.close();
            inpu.close();
RowSum RS=new RowSum(); 
RS.inputarray(m,n);
RS.sum_rows_columns(m,n);
RS.PrintSumArray(m,n);
        }
}

我正在尝试在运行时声明数组。当我尝试运行它时,在控制台中显示以下输出:

输出:

输入行数    3    输入列数    3    线程“main”中的异常java.lang.Error:未解决的编译问题:    扫描仪无法解析为某种类型    扫描仪无法解析为类型

at RowSum.inputarray(RowSum.java:10)
at MatrixSum.main(MatrixSum.java:18)

1 个答案:

答案 0 :(得分:0)

关闭

  inp.close();
  inpu.close();

在主要方法的最后。如果之前关闭它们,也会导致System.in关闭。这意味着扫描程序无法读取任何数据,从而抛出NoSuchElementException