Problemas para inserir uma operação

11 respostas
E

Estou com dificuldade de inserir uma operação matematica, já fiz de tudo que veio na minha cabeça mas não saiu o que pode ser o problema…

Declarei uma variável valor1 como double, mas não consigo realizar valor1 = valor1 + opera,
Alguem poderia me ajudar?

else if (perg == 2){ 
			
       System.out.println("Quanto deseja depositar?");
       Scanner deposito = new Scanner (System.in);
       Double opera = deposito.nextDouble();
       System.out.println("Saldo Atual é:" + (valor1 + opera));
       //Aqui deveria ser: valor1 = valor1 + opera 
       System.out.println("Saldo Atual é:" + valor1);
       System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");
       Scanner saber = new Scanner (System.in);
        int perg1 = saber.nextInt();
while (perg == 2);
       Banco c = new Banco();     
       c.Saldo(nuncon);
			
if(perg == 1);
        System.out.println("Finalizado!!!");
}

Colei apenas uma parte do codigo, se precisarem da outra me falem que eu coloco…
Obrigado!!!

11 Respostas

F

Qual é o erro que dá?

douglaskd

quando você vai digitar o valor de double vc coloca ponto ( . ) ou virgula ( , ) ?

esse valor1 é propriedade de qual objeto?

precisamos do erro… e mais código…

E

O valor1 fica sublinhado de vermelho com aquela lâmpada, escrito: the final field Iconta.valor1 cannot be assigned

E

Segue o codigo completo!!

package banco;

import java.util.*;

	
	interface Iconta{
		public Double valor1 = 0.0;
		public Double limite1 = -50.0;
		
		public Double valor2= 0.0;
		public Double limite2 = -100.0;
		
		public String perg = null;
		public Integer opera = 0;
		
	
	}
	
	public class Banco implements Iconta{
	
		public Integer nuncon;

		
		public void Saldo (int nuncon){
		
		if (nuncon==1){
			//System.out.println("Saldo" +new Usuario().getInformacao(int nuncon));
			//System.out.println("Informação da conta Numero 1: \n Nome:" + nome1);
			Usuario u = new Usuario();     
		    u.getInformacao(nuncon);
		    	    
			System.out.println("Saldo na conta :" + valor1);
			System.out.println("Deseja fazer alguma transação? 1 para sacar, 2 para depositar ou 3 para Finalizar");
			Scanner desi = new Scanner(System.in);
			int perg = desi.nextInt();
			
			if (perg == 1){
				System.out.println("Quanto deseja sacar?");
				Scanner saque = new Scanner (System.in);
				Double opera = saque.nextDouble();
				System.out.println("Saldo Atual é:" + (valor1 - opera));
				System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");
				Scanner saber = new Scanner (System.in);
				int perg1 = saber.nextInt();
					while (perg == 2);
					Banco c = new Banco();     
				    c.Saldo(nuncon);
					
				    if(perg == 1);
					System.out.println("Finalizado!!!");
				
			}	
				
				
			else if (perg == 2){ 
				System.out.println("Quanto deseja depositar?");
				Scanner deposito = new Scanner (System.in);
				Double opera = deposito.nextDouble();
				System.out.println("Saldo Atual é:" + (valor1 + opera));
				valor1 = valor1 + opera;
				//System.out.println("Saldo Atual é:" + valor1);
				System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");
				Scanner saber = new Scanner (System.in);
				int perg1 = saber.nextInt();
					while (perg == 2);
					Banco c = new Banco();     
				    c.Saldo(nuncon);
					
				    if(perg == 1);
					System.out.println("Finalizado!!!");
			}
	
			else if (perg == 3){
				System.out.println("Finalizado!!!");
			}
		}
		else if (nuncon == 2){
			Usuario u = new Usuario();     
		    u.getInformacao(nuncon);
		    System.out.println("Saldo na conta :" + valor2);
			System.out.println("Deseja fazer alguma transação? 1 para sacar, 2 para depositar ou 3 para Finalizar");
			Scanner desi = new Scanner(System.in);
			int perg = desi.nextInt();
			if (perg == 1){
				System.out.println("Quanto deseja sacar?");
				Scanner saque = new Scanner (System.in);
				Double opera = saque.nextDouble();
				System.out.println("Saldo Atual é:" + (valor2 - opera));
				System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");
				Scanner saber = new Scanner (System.in);
				int perg2 = saber.nextInt();
					
				while (perg == 2);
					Banco c = new Banco();     
				    c.Saldo(nuncon);
					
				    if(perg == 1);
					System.out.println("Finalizado!!!");
				
			}	
				
				
			else if (perg == 2){ 
				System.out.println("Quanto deseja depositar?");
				Scanner deposito = new Scanner (System.in);
				Double opera = deposito.nextDouble();
				System.out.println("Saldo Atual é:" + (valor2 + opera));
				System.out.println("Deseja fazer mais alguma operação? 1-Não ou 2-Sim");
				Scanner saber = new Scanner (System.in);
				int perg1 = saber.nextInt();
					
				while (perg == 2);
					Banco c = new Banco();     
				    c.Saldo(nuncon);
					
				    if(perg == 1);
					System.out.println("Finalizado!!!");
			}
	
			else if (perg == 3){
				System.out.println("Finalizado!!!");
			
		}
		}
		
			
	}
	
	public static void main(String[] args) {     
	      System.out.println("Entre com o numero de sua conta:");   
	      Scanner entrada = new Scanner(System.in);   
	      int nuncon = entrada.nextInt();   
	      Banco c = new Banco();     
	      c.Saldo(nuncon);     
	   }
	
	}
F

Então a sua variável valor1 deve estar com o modificador ‘final’.

Variáveis com o final não podem ser modificadas.

F

Eu havia respondido ao tópico antes de vc colocar o código.

A sua variável valor1 está dentro da interface IConta, logo variáveis declaradas dentro de interfaces são implicitamente contantes, por isso houve erro na hora de vc atribuir um novo valor a variável valor1.

E

felipe.sales:
Eu havia respondido ao tópico antes de vc colocar o código.

A sua variável valor1 está dentro da interface IConta, logo variáveis declaradas dentro de interfaces são implicitamente contantes, por isso houve erro na hora de vc atribuir um novo valor a variável valor1.

entendi, o unico jeito seria eu remover essa variavel de dentro da interface?

F

Isso, tirar da interface e colocar dentro de uma classe.

Por exemplo, no seu código vc poderia ter uma classe abstrata chamada Conta com as variáveis de instância.
Dai vc pode criar outros de classes de conta que herdem da classe abstrata Conta, como ContaCorrente, ContaPoupanca, etc.

douglaskd

além desse erro eu via algumas coisas estranhas:

while (perg == 2); <-- " ; " sem {}

você usa assim apenas se for usar do…while…eu não achei nenhum “do”

o if ta fechado tambem…

if(perg == 1); <-- " ; " o código compila mais ele não faz nada.

tem que tirar os ; ; ; ;, e abrir chaves { } onde precisar

douglaskd

você pode até ter uma interface, mais o que o felipe.sales disse é aquilo mesmo…

se for usar interface coloca alguns métodos comuns:

por exemplo depositar, sacar, transferir.

seria bem interessante.

E

Muito Obrigado Pelas dicas e Pela ajuda!!!

vou tentar fazer dessa forma que vocês me orientaram…

Abc!!!

Criado 21 de outubro de 2010
Ultima resposta 21 de out. de 2010
Respostas 11
Participantes 3