2014-10-30 253 views
-1

我试图用升序数制作动态2D(nxn)矩阵; 实施例:1 2 3 4 否否否否 否否否否在for循环中缺少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]); 
     } 
    } 

} 

任何帮助将非常感激。

+2

什么特别是关于错误消息令你困惑?对我来说似乎很清楚。 – 2014-10-30 19:01:26

+0

添加'return'语句或将函数的结果类型更改为'void'。此外,如果您想查看任何结果,您可能需要在'main'的某处调用该函数。 – 2014-10-30 19:02:58

+0

它给你这个错误,因为return语句真的缺失。 – kraskevich 2014-10-30 19:03:12

回答

1

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

因此,例如,写这篇文章下了:

return matrix1; 

请使用缩进,使你的代码看起来更美丽,更清晰。 您在类的外部定义了功能matrix1,因此您的代码将无法工作。 另请考虑查看Java Hello World教程。

0

你说的Java,你会返回一个int类型的双矩阵:int[][]当你声明的方法:public static **int[][]** matrix1(int size){

或者:

一)返回一个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! 
} 

二)返回什么:公共静态无效矩阵1(INT大小){

因为它似乎只是试图打印出2D数组中的值,所以您可能不需要返回任何东西(与选项b一起)

1

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