Força no Código!

10 respostas
A

Olá Galera me ajudem nesse Código:
class operacoes

public class Operacoes
{
	
	public Operacoes()
	{
		
	}
	
	public Double realizarCalculo(int op, double num1, double num2, double resultado)
	{
	   switch(op){
	       case 1: 
	              resultado = num1 + num2;
	       break;
	       
	       case 2:
	              resultado = num1 - num2;
	       break;
	       
	       case 3:
	              resultado = num1 * num2;
	       break;
	       
	       case 4: 
	              resultado = num1 / num2;
	       break;
	       
	       default:
                  // Operacoes.retornaErro(String erro2 = "");
	       
	       }  //fim do switch
         return resultado;  
    }  
    
    public String retornaErro(String erro1)
    {
     erro1 = "Digite uma Operação Válida";
     return erro1;                              
     }
	
}

class Calculo modificada

import javax.swing.JOptionPane;

public class Calculo 
{
	
	public static void main (String args[])
	{
	    Operacoes calcNum = new Operacoes();
   		String opcao;
   		String numero1;
   		String numero2;
   		double resu;
   		double n1;
   		double n2;
   		double res = 0;
   		int op1;
   	    
   	    
   		opcao = JOptionPane.showInputDialog("Entre com a Operação Desejada");
   		op1 = Integer.parseInt(opcao);
   		if(op1 < 5){
   		numero1 = JOptionPane.showInputDialog("Entre com o Primeiro Inteiro");
   		n1 = Double.parseDouble(numero1);
   		numero2 = JOptionPane.showInputDialog("Entre com o Segundo Inteiro");
   		n2 = Double.parseDouble(numero2);
   		resu = calcNum.realizarCalculo(op1, n1, n2, res);
   		JOptionPane.showMessageDialog(null, "Resultado = " + resu, "Resultado", JOptionPane.INFORMATION_MESSAGE);
   	    } 
   	    else
   	        JOptionPane.showMessageDialog(null, "" + calcNum.retornaErro(String e = ""), "Erro", JOptionPane.ERROR_MESSAGE); 
    }

}

Tá dando erro na JOptionPane do ELSE, ele diz que falta uma {

Desde já agradeço !! :cool:

10 Respostas

F

opa mandei errado foi malz :lol:

J

tem certeza que pode declarar uma String ai?

e outra coisa, voce ta retornando um objeto Double, teria que fazer:

public double realizarCalculo(int op, double num1, double num2, double resultado) , caso contrario acho que voce vai encontrar algum incompatible types…

espero ter ajudado

H

como vc nao tem atributos na classe operaçoes… vc poderia declarar o metodo realizarCalculo como static, assim não precisa instanciar um objeto Operacoes p/ usar o metodo…

A

Gente, obrigado pelas dicas, mas… o método realizar cálculo já é Double
e eu não tenho certeza se pode declarar uma String lá no método, mas eu
acredito que sim !!!

eu quero saber se alguém pode me ajudar no erro em si, pois, ele tá realizando a operação numa boa, só falta dar essa mensagem de erro, caso a opção escolhida seja maior que 4 … valeu pela força e desde já agradeço !!

Adriano M. Ohana :cool:

J

entao cara, é isso, o problema é que a janela com a mensagem nao ta aparecendo certo?
isso porque ta dando erros de compilacao…voce nao pode declarar uma String no meio da chamada um metodo(e sinceramente, nao vejo necessidade nesse seu caso de ter uma String declarada ai). tenta deixar so o “” em vez de String e = “” pra ver o que acontece.

outra coisa, o do double, so tou advertindo porque acho que vai dar erro nessa linha:

//...
double resu;
//...
resu = calcNum.realizarCalculo(op1, n1, n2, res);  //ERRO AQUI
//...

isso porque o seu metodo realizarCalculo(…) retorna um objeto Double e a sua variavel resu é um tipo primitivo double, ai pode dar um Incompatible Types ou alguma coisa assim…

espero ter sido mais claro dessa vez…
boa sorte :slight_smile:

A

Pow JavaAdicted, o cálculo tá dando certo, mas… já que tu tocou no assunto, explica aí a diferença do Double pro double, te confesso que to meio pur fora !!

Desde já agradeço !!

Adriano M. Ohana :cool:

E

“adriano_si”:
Pow JavaAdicted, o cálculo tá dando certo, mas… já que tu tocou no assunto, explica aí a diferença do Double pro double, te confesso que to meio pur fora !!

Desde já agradeço !!

Adriano M. Ohana :cool:

Diferença: Double x double

a diferença dos dois é o seguinte Double é uma classe que tu instancia objetos que representam valores primitivos do tipo double

e double é um tipo primitivo, ou seja, tu declara e usa, não instancia um objeto dele pq não é uma classe

essa é a diferença basica :wink:

A

seria pedir muito pra dar um exemplo prático e ambas ??

Se for dá muito trabalho então deixa pra lá …

Dese ja agradeço

Adriano M. Ohana :cool:

J

por exemplo, o tipo primitivo double voce faz:

double d1 = 0.0;
double d2 = 5.65;

//voce pode usar os operadores +, -, /, *, %...
double resultado = d2 / d1;

//há o cast automatico com tipos inteiros
resultado = d2 / 5;

ja o Double deve ser tratado como um Objeto, uma classe, entao:

//tem que usar o new
Double d1 = new Double(2.5);
String valor = "244.67";
Double d2 = new Double(valor);

//voce nao pode usar operadores diretamente
double resultado = d2.doubleValue() - d1.doubleValue();

//mas, por ser um objeto, voce pode armazená-lo em List
Vector vec = new Vector();
vec.add(resultado);

//inclusive, se voce precisar armazenar algum tipo primitivo em listas,
//               é usada essa técnica, chamada encapsulamento

espero ter sido de ajuda

A

Agora deu pra sacá a diferença… Gracias mesmo !!

Adriano Martina Ohana ! :cool:

Criado 10 de maio de 2005
Ultima resposta 13 de mai. de 2005
Respostas 10
Participantes 5