for循环中缺少return语句

时间:2014-10-30 19:00:27

标签: java

我正在尝试使用递增的数字制作动态2D(nxn)矩阵; 例:1 2 3 4     5 6 7 8     n n n     n n n n

在汇编时,它给出了错误“Missing Return Statment”。

import javax.swing.*;
public class Hw4ex2{
    public static void main(String args[]){

    String a = JOptionPane.showInputDialog ("Matrix size nxn");
    int size = Integer.parseInt(a);

}
}       


    public static int[][] matrix1(int size){

    int[][] matrix1 = new int[size][size];
    int x = 1;

    for(int i=0; i<size; i++){
        for(int j=0; j<size; j++){
            matrix1[i][j] = x;
            x++;

            System.out.print(matrix1[i][j]);
        }
    }   

}

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

您需要向方法matrix1添加一个return语句。

例如,在for:

下写下这个
return matrix1;

请使用缩进使代码看起来更美观,更清晰。 您在类之外定义了函数matrix1,因此您的代码无法正常工作。 另请考虑查看Java Hello World教程。

答案 1 :(得分:1)

为了从Java方法返回值,必须执行return语句,并将值作为操作数。将变量命名为与方法相同是不够的。

答案 2 :(得分:0)

您告诉Java当您声明方法时,您将返回int:int[][]类型的双矩阵:public static **int[][]** matrix1(int size){

或者:

a)返回int

类型的双数组
public static int[][] matrix1(int size){

int[][] matrix1 = new int[size][size];
int x = 1;

  for(int i=0; i<size; i++){
      for(int j=0; j<size; j++){
          matrix1[i][j] = x;
          x++;
          System.out.print(matrix1[i][j]);
      }
  }   
return matrix1; //<-- return the thing you promised!
}

b)不返回任何内容:public static void matrix1(int size){

由于您似乎只是试图打印出2D数组中的值,因此您可能不需要返回任何内容(请选择b)