2014-10-30 4 views
-1

Я пытаюсь сделать динамическую матрицу 2D (nxn) с восходящими числами; Ex: 1 2 3 4 5 6 п п п п п п п пОтсутствует return Statement in for loop

При компиляции он дает мне ошибку "Missing Return Постулаты".

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

Что конкретно сообщение об ошибке вас путает? Мне кажется совершенно ясным. –

+0

Добавьте инструкцию 'return' или измените тип результата вашей функции на' void'. Кроме того, вам, вероятно, нужно вызвать функцию в какой-то момент в 'main', если вы хотите увидеть какие-либо результаты. –

+0

Это дает вам эту ошибку, потому что return statement действительно отсутствует. – kraskevich

ответ

1

Вам необходимо добавить оператор возврата к методу matrix1.

Так, например, пишу это под для:

return matrix1; 

Пожалуйста, используйте отступы, чтобы сделать ваш код будет выглядеть более красивым и более ясным. Вы определили функцию matrix1 вне класса, поэтому ваш код не будет работать. Также рассмотрим учебник Java Hello World.

0

Вы сказали Java, что вы будете возвращающимся двойной матрицей типа INT: int[][] когда вы объявили метод: public static **int[][]** matrix1(int size){

Либо:

а) Возвращает двойной массив типа междунара

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! 
} 

б) не возвращает ничего: открытый статические недействительных Matrix1 (интермедиат размер) {

Поскольку кажется, что вы просто пытаетесь распечатать значения в 2D-массиве, вам, вероятно, ничего не нужно возвращать (перейдите с выбором b)

1

Чтобы вернуть значение из метода Java, вы должны выполните оператор return со значением в качестве операнда. Недостаточно назвать переменную такой же, как метод.