Jump to content
Fórum Script Brasil
  • 0

Problema Na Compilação Desse Codigo!


Guest --visitante --

Question

Guest --visitante --

Galera estou aqui fazendo uns exercicios de java, e uma das quesões é a seguinte:

Receba 3 números como parâmetro, exiba o maior o menor e o do meio.

Ai eu criei esse codigo, por enquanto ele só mostra o maior e o menor:

public class teste2 {
        
    int num1 = 10;
    int num2 = 20;
    int num3 = 30;
   
public void main(int num1, int num2, int num3){
    
    int maior = 0;
    int menor = 0;
    
    
          
     if((num1>num2)&(num1>num3))
        maior = num1;
     else if((num2>num1)&(num2>num3))
        maior = num2;
     else if((num3>num1)&(num3>num2))
        maior = num3;
     if((num1<num2)&(num1>num3))
        menor = num1;
     else if((num2<num1)&(num2>num3))
        menor = num2;
     else if((num3<num1)&(num3>num2))
        menor = num3; 
           
        
     
      System.out.println("O maior numero é: " +maior);
      System.out.println("o menor numero é" +menor);
      
    
    }
    
public static void main(String [] args){
          
       

                       
    }    
    
}

Mais só que na hora que eu mando executar ele não mostra nada no console, e eu já to aqui grilado sem entender nada.

Estou usando a IDE NetBeans 5.0.

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Não compila por quê?

Simples. Está tudo errado. :-)

Primeiro porque você está tentando criar um método chamado main, o que não pode.

Segundo porque você não está fazendo o método main adequadamente. É a partir dele que você vai rodar o método que recebe os parâmetros. Mas como ele é estático, você precisa instanciar tal método dentro do main. O método main é o carro-chefe de sua aplicação. Se ele estiver vazio, não vai acontecer nada. Simplesmente não vai rodar nada.

Solução:

- Mude o nome do método 'main()' para metodoTeste(), por exemplo, ao invés de main. Pois main é uma palavra reservada.

Então você vai no método main ORIGINAL, lá em baixo, e faz isso:

public static void main(String [] args){

//instanciando, ou seja, criando objeto da própria classe.
teste2 objeto = new teste2();

//abaixo você usa quaisquer valores, 10, 20 e 30 foram exemplo. O importante é você perceber que usamos a referência à própria classe criada para acessar o método.
objeto.metodoTeste(10, 20, 30);


}
Agora você se pergunta: porque instanciar a própria classe? Simples! Pois o método main é estático, e para usar métodos não-estáticos dentro dele precisa-se instanciar a própria classe para assim ter acesso. Se preferir você pode tornar o metodoTeste() estático e assim não vai precisar de instanciação. Fica assim: public static void metodoTeste(){ Nesse caso, o main fica mais simples:
public static void main(String [] args){

metodoTeste(10, 20, 30);

}

Entendeu?

Prontinho! Vai rodar.

Eu não analisei seu algoritmo de verificação de quem é maior ou menor, mas parece estar certo 'a olho nú'.

Se ele estiver correto, o programa vai funcionar.

Uma dica é ficar de olho no erro que dá e seguir a linha que ele mostra.

Abraço.

Edited by Giancarlo Braga
Link to comment
Share on other sites

  • 0
Guest Visitante

Aproveitando aqui o momento novamente, estou com problema na passagem de um vetor indeterminado de numeros por parâmetros, meu codigo é esse aqui:

import java.util.ArrayList;

import javax.swing.JOptionPane;

public class teste5 {

public void metodoTeste(){

}

public static void mains(String [] args) {

int numero;

String tipo;

ArrayList numeros = new ArrayList();

do{

String n = JOptionPane.showInputDialog("numero");

numero = Integer.parseInt(n);

numeros.add(numero);

}while(tipo.equalsIgnoreCase("fim"));

teste2 objeto = new teste2();

objeto.metodoTeste(numeros);

}

}

O que estaria errado nessa passagem do vetor?

Link to comment
Share on other sites

  • 0
Guest Visitante

Aproveitando aqui o momento novamente, estou com problema na passagem de um vetor indeterminado de numeros por parâmetros, meu codigo é esse aqui:

import java.util.ArrayList;

import javax.swing.JOptionPane;

public class teste5 {

public void metodoTeste(){

}

public static void main(String [] args) {

int numero;

String tipo;

ArrayList numeros = new ArrayList();

do{

String n = JOptionPane.showInputDialog("numero");

numero = Integer.parseInt(n);

numeros.add(numero);

}while(tipo.equalsIgnoreCase("fim"));

teste5 objeto = new teste5();

objeto.metodoTeste(numeros);

}

}

O que estaria errado nessa passagem do vetor?

Link to comment
Share on other sites

  • 0
Guest --visitante --

É isso velho, foi um erro meu ter postado sem, mais tipo, eu estava usando todo o codigo no metodoteste porem estava dando erro lá no main quando estava passando o ArrayList como parâmetro, o codigo estava assim:

import java.util.ArrayList;

import javax.swing.JOptionPane;

public class teste5 {

public void metodoTeste(int numeros){

String tipo;

int numero;

do{

String n = JOptionPane.showInputDialog("numero");

numero = Integer.parseInt(n);

numeros.add(numero);

}while(tipo.equalsIgnoreCase("fim"));

}

public static void main(String [] args) {

ArrayList numeros = new ArrayList();

teste5 objeto = new teste5();

objeto.metodoTeste(numeros);

}

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...