Não consigo identificar o erro ao compilar

14 respostas
variaveljava
P
class Conta {

Pessoa titular;

int agencia;

int operacao;

int numero;

double saldo;
void deposita(double valorASerDepositado) {
	this.saldo += valorASerDepositado;
}
void saca(double valorASerScado) {
	if(this.saldo -= valorASerSacado) {
		this.saldo -= valorASerSacado;
	}
}
void transfere(double valor, Conta destino) {
	this.saldo -= valor;
	destino.saldo += valor;
}

}

class Pessoa {

String nome;

long cpf;

int nascimento;

}

class Programa
{public static void main(String[] args) {

Conta pollyana = new Conta();
		pollyana.agencia = 815;
		pollyana.operacao = 13;
		pollyana.numero = 246142;
		pollyana.saldo = 1000.0;
	pollyana.titular = new Pessoa();
		pollyana.titular.nome = "Pollyana Moreira Lopes Valente";
		pollyana.titular.cpf = 1232210640L;
		pollyana.titular.nascimento = 10101995;



	Conta rafael = new Conta();
		rafael.agencia = 815;
		rafael.operacao = 13;
		rafael.numero = 499890;
		rafael.saldo = 1000.0;
	rafael.titular = new Pessoa();
		rafael.titular.nome = "Rafael Lopes Valente";
		rafael.titular.cpf = 11290081697L;
		rafael.titular.nascimento = 22081992;



	pollyana.deposita(200.0);
	pollyana.saca(50.0);
	pollyana.transfere(50.0, rafael);

	System.out.println (pollyana.saldo);
	System.out.println (rafael.saldo);
}

}

javac conta.java

conta.java:35: error: cannot find symbol

if(this.saldo -= valorASerSacado) {

^

symbol:   variable valorASerSacado

location: class Conta

conta.java:35: error: incompatible types

if(this.saldo -= valorASerSacado) {

^

required: boolean

found:    double

conta.java:36: error: cannot find symbol

this.saldo -= valorASerSacado;

^

symbol:   variable valorASerSacado

location: class Conta

3 errors

14 Respostas

darlan_machado

required: boolean //Obrigatório: boolean
found: double //encontrado: double

Ou seja, você deveria fornecer uma expressão lógica, do tipo

if(this.saldo -= valorASerSacado > 0) {

E não um double

if(this.saldo -= valorASerSacado)
P

Estou aprendendo com os cursos do alura e já copiei extamente o codigo. não sei onde está o erro. pois nas video aulas ele compila normalmente esse mesmo codigo.

darlan_machado

Pausa o vídeo no momento em que ele mostra esse código, tira um print e coloca aí para analisarmos.
Se for isso mesmo, é um erro grosseiro.

P

darlan_machado

E onde está o

P

Consegui reduzi os erros a isso:

javac conta.java
conta.java:35: error: incompatible types
if(this.saldo -= valorASerSacado) {
^
required: boolean
found: double
1 error

MAS AINDA SIM É UMA INCÓGNITA VISTO QUE NA VIDEO AULA ESSE MESMO CODIGO É COMPILADO NORMALMENTE.

P

Está no fim do código que coloquei no topico.

darlan_machado

No print, cadê o código referido no print?

darlan_machado

Primeiro que você não tem nenhuma razão em usar caixa alta (se você não sabe, é o mesmo que gritar).
Segundo que você, certamente, copiou erroneamente.

P

aff, só usei o caixa alta pra destacar o que é código e o que é conversa… Obrigada por reparar um detalhe tão importante como esse.

darlan_machado

Acima da caixa de texto que você usa para postar, existem alguns botões.
Se quer destacar algo, seleciona o que digitou e clica no B.
Isso deixará o texto em negrito

P

H

desculpa mas você não copiou igual ao dele olha o seu:

agora o dele:

if(this.saldo >= valorASerSacado) {

Dentro do if ele só aceita operador logico, para verificar se é igual, diferente, maior menor, maior igual ou menor igual, o que você colocou foi o que o cara faz na linha abaixo que é a mesma coisa de:

this.saldo = this.saldo-valorASerSacado, ou seja, você tentou atribuir valor a uma variável dentro do if, quando for copiar um código não mude nem uma virgula se não souber a importância dela.

P

Obrigada!
Consegui identificar esse erro muito tarde. Acho que já estava muito cansada e não reparei esse erro bobo. Muito obrigada!

Criado 10 de abril de 2018
Ultima resposta 11 de abr. de 2018
Respostas 14
Participantes 3