Bem eu tenho uma duvida secalhar ate um pouco estupida mas como sou iniciante espero que me “perdoem” por vos estar a fazer este tipo de questoes. Ora a questao é eu tenho uma classe, nessa classe obrigatoriamente tenho que ter um metodo main, agora a questão é o main é sempre Void certo ? ou seja nao retorna nada. Eu queria realizar a impressao de uma matriz logo tinha que a retornar para concluir a sua leitura por isso, este mesmo codigo nao pode estar dentro do main logo tenho que criar outro metodo que nao seja Void. O que agora acontece é que o programa nao me deixa compilar poque eu nao tenho nada no metodo main. ora vejam o codigo:
public class experiencia {
public static void main(String[] args) {
}
int [][] imprimematriz(int[][] matriz){
int vetorexp [][] = new int [5][5];
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
if(i==j)
vetorexp[i][j]=2;
else
vetorexp[i][j]=5;
System.out.println(" "+vetorexp[i][j]);
}
}
return vetorexp;
}
}
Na verdade, como você só quer imprimir o vetor no console, o método não precisa retornar nada, pois vc ja ta imprimindo dentro do método imprimeMatriz.
como o método não é statico, você precisa instanciar a classe Experiencia pra poder executar. Ficaria ± assim
public class experiencia {
public static void main(String[] args) {
Experiencia experiencia = new Experiencia();
// Cria a matriz
experiencia.imprimematriz(matriz)
}
public void imprimematriz(int[][] matriz){
int vetorexp [][] = new int [5][5];
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
if(i==j)
vetorexp[i][j]=2;
else
vetorexp[i][j]=5;
System.out.println(" "+vetorexp[i][j]);
}
}
}
}
Só lembrando que vc deve se atentar as nomeclaturas. Nome de classe por exemplo, sempre começa com maiuculo
Claro colega, em todo programa que há um main ele sempre será assim: public static void main(String[] args)
qualificador de acesso é public
será um método estático (static)
não retornará nada void
para que a impressão da matriz seja feita você deve chamar dentro do main o método estático que você criou (imprimematriz(null) e os comando dentro do if e else para serem impresso na tela.
[code]public class matriz {
public static void main(String[] args) {
imprimematriz(null);
}
static int [][] imprimematriz(int[][] matriz){
int vetorexp [][] = new int [5][5];
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
if(i==j) {
System.out.print(i);
System.out.println(j);
}
else{
System.out.print(i);
System.out.println(j);
}
}
}
return vetorexp;
} [/code]
Bom só acrescentando ao que marcos4ft falou, você realmente não vai necessitar retornar nada porque está somente imprimindo os valores da matriz, e há também uma outra coisa que se deve levar em consideração neste caso, você está criando uma nova matriz dentro do metodo e não imprimindo a que foi passada por referencia, no caso acho que o mais correto seria fazer assim.
/*
* Este aqui é um metodo padrão do java o principal e o primeiro que será chamado na hora da execução
* ele deve ser sempre da mesma forma
*/
public static void main(String[] args){
// aqui você cria uma nova matriz
int[][] matriz = new int[5][5];
// E depois atribui valores a ela
for (int i = 0; i<5; i++){
for(int j=0; j<5; j++){
if(i == j){
matriz[i][j] = 2;
}else{
matriz[i][j] = 5;
}
}
}
// E quando quiser imprimir a matriz seja ela de qualquer tamanho
// só é chamar o metodo imprimiMatriz
// Obs.: para ser utilizado desta forma ele deve ser um metodo static caso
// contrario será necessário criar uma nova instancia da classe que possui este metodo
imprimirMatriz(matriz);
}
/*
* Este metodo irá imprimir matrizes independentes do tamanho
* Desde que sejam do tipo int
*/
public static void imprimirMatriz(int[][] matriz){
for (int i = 0; i<5; i++){
for(int j=0; j<5; j++){
// Percorre todas as posições da matriz e imprime seus valores
System.out.print(matriz[i][j] + " ");
}
}
}
ñ há necessidade de instanciar um objeto no main, basta passar o metodo imprimematriz para estatico e colocar dentro do main
que ela executara numa boa sem problemas.
retirei a matriz parametro do codigo pois ñ faz sentido algum ter um parametro ñ utilizado.
public class experiencia {
public static void main(String[] args) {
imprimematriz();
}
public static void imprimematriz() {
int vetorexp[][] = new int[5][5];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (i == j)
vetorexp[i][j] = 2;
else
vetorexp[i][j] = 5;
System.out.println(" " + vetorexp[i][j]);
}
}
}
}