Tipo de retorno boolean não está retornando informações

7 respostas
gsalcantara

Pessoal, alguem poderia me orientar quanto a isso?

Não está retornando se é “true” ou “false”.

Segue o código:

public class ClasseConta {
	int SaldoConta = 500;
	int ValorSaque;
	
	boolean saque(int valor){
		if(SaldoConta>ValorSaque){
			return true;
		}
		else{
			SaldoConta = SaldoConta - ValorSaque;
			return false;
		}
	}
}

Aplicativo:

public class ProgramaaConta {
	public static void main(String[]args){
		ClasseConta ob = new ClasseConta();
		ob.saque(600);
	}
}

7 Respostas

furutani

retorna sim, mas como vc não está armazenando o retorno ele se perde. Faz assim:

boolean retorno = ob.saque(600);
ai vc trabalha com o valor da variavekl retorno.

gsalcantara

furutani

no caso, o valor do parâmetro do método “saque” não serve para definir o restorno não?

e não consigo entender esse trecho:

boolean retorno = ob.saque(600);
//seria, uma variável do tipo boolean que recebe um método do tipo saque com um valor de parâmetro 600 que é chamado por um objeto com o nome "ob" que é "derivado" da classe "ClasseConta"? é isso?

Valeu!

GabrielCardelli

Seu metodo retorna o que?

TRUE ou false certo?

Retorna pra onde?

Tem que guardar isso em algum lugar…

QUando vc chama o seu metodo e ele consegue fazer o sague ele retorna pra algum lugar… AE VALEU CONSEGUI EFETUAR O SAQUE (TRUE), voce nao sabe que lugar e essa antes de botar o

boolean resultado = …

Antes ele ficava perdido

Agora vc sabe ELE ME RETORNA UM VALOR BOLEANO TRUE ou FALSE Entao quando o programa executar ele ele vai guardar o return em uma variavel resultado para eu fazer algo com ela

EX:

boolean resultado = ob.saque(600);

if(resultado)

Imprima(Saque efetuado com sucesso!);

else

Imprima(Saldo Insuficiente);
Jhonny_Oliveira

Você não está usando o parâmetro pra nada no método saque:

boolean saque(int valor){  //Aqui vc passa o parâmetro int valor, mas não está usando pra nada, perceba
        if(SaldoConta>ValorSaque){ 
            return true;  
        }  
        else{  
            SaldoConta = SaldoConta - ValorSaque;  
            return false;  
        } 
}

Para usar corretamente você pode fazer o seguinte:

boolean saque(int valor){ 
        ValorSaque = valor; //Agora sim o parâmetro valor está sendo realmente utilizado

        //Mas existe um erro de lógica aqui eu acho
        if(SaldoConta>ValorSaque){  //Se o Saldo for maior que o Saque, blz retorna TRUE, e deveria abater do Saldo o valor Sacado, certo????
            return true;  
        }  
        else{  
            SaldoConta = SaldoConta - ValorSaque;  //Se o Saldo for menor que o Saldo,
                                                 // o sistema debita o valor de Saque, isso faz com que a conta fique negativa não é?
            return false;  
        }  
    }
gsalcantara

o exemplo original é esse, da apostila Caelum-11:

class Conta {
 // ... outros metodos e atributos ...

 boolean saca(double valor) {
 if (this.saldo < valor) {
 return false;
 }
 else {
 this.saldo = this.saldo - valor;
 return true;
 }
 }
 }
gsalcantara

pra mim, era como no javascript, vc dá uma condicao e ela retorna as palavras “true” ou “false”

gsalcantara

Problema resolvido galera, com a ajuda de vcs é claro!

Obrigado a todos pela força!

Classe:

public class ClasseConta {
	int SaldoConta = 500;
	int ValorSaque = 600;
	boolean retorno;
	
	boolean saque(){
		if(SaldoConta>ValorSaque){
			System.out.print("Saque efetuado com sucesso.");
			SaldoConta = SaldoConta - ValorSaque;
			return true;
		}
		else{
			System.out.println("Saldo insuficiente.");
			return false;
		}
	}
}

Aplicativo:

public class ProgramaaConta {
	public static void main(String[]args){
		ClasseConta ob = new ClasseConta();
		ob.saque();
	}
}

Como eu disse, pra mim, o “retun true” ou “return false” retornavam as palavras como em javascript.

Valeu!

Criado 28 de dezembro de 2009
Ultima resposta 29 de dez. de 2009
Respostas 7
Participantes 4