Metodos

18 respostas
renatorudolf

Boa noite !!
Sou novo em java e gostaria de saber o seguinte:

tenho o seguinte metodo

public void debit ( double deb )

{ balanço = balanço - deb;

if ( balanço < 00.00 )	

System.out.printf(" Quantia de debito excedeu o saldo da conta");

if ( balanço >= 50.00 )
balanço = balanço - deb;

}

public double getBalance()

{

return balanço;

}

ja criei um objeto, a saida fiz assim:
System.out.printf(" O valor agora é: %.2f ", my.getBalance() );

Com esse codigo acima sai os dois valores
e gostaria q ele me retornasse apenas o verdadeiro

o que tá errado ?

18 Respostas

renzonuccitelli

no seu método, se o balanço é maior ou igual a cinquenta, o débito é feito duas vezes. Tá certo isso ou foi o Paulo Maluf que escreveu o método pra vc?

renatorudolf

rsrsrsr tá certo isso
eu quero q ele me volte a resposta verdadeira
assim q o usuario digitar um valor.
Ja utilizei entrada para o usuario digitar um valor.
Obs: Ja tem um parametro com valor 50

renzonuccitelli

eu entendi que o usuário digita um valor, provavelmente o de débito. Pelo menos na lógica dos bancos reais, vc deveria tirar o débito da conta da pessoa somente a cada saque, e não duas vezes para o mesmo saque, mas enfim, se vc está dizendo que está certo…

ja criei um objeto, a saida fiz assim:
System.out.printf(" O valor agora é: %.2f ", my.getBalance() );

Com esse codigo acima sai os dois valores
e gostaria q ele me retornasse apenas o verdadeiro

Não entendi o que vc kis dizer com sai os dois valores, se puder explicar melhor derrepente da pra te ajudar…

renatorudolf

na hora de imprimir
System.out.printf(" O valor agora é: %.2f ", my.getBalance() );
aparece 2 valor e nao um "o verdadeiro
aparece

Quantia de debito excedeu o saldo da conta O valor agora é: -10

sendo q quero q apareça Quantia de debito excedeu o saldo da conta ou O valor agora é: 10 (No caso de ter digitado 40)

renzonuccitelli

Vamos lá:

primeiramente use a tag code (tem o botao com esse nome qdo vc escreve uma msg no GUJ) pro seu código ficar mais legível, assim:

public void debit ( double deb )
{ balanço = balanço - deb;
if ( balanço < 00.00 )
System.out.printf(" Quantia de debito excedeu o saldo da conta");

if ( balanço >= 50.00 )
balanço = balanço - deb;

}

public double getBalance()
{
return balanço;
}
renatorudolf

[code]public void debit ( double deb )
{ balanço = balanço - deb;
if ( balanço < 00.00 )
System.out.printf(" Quantia de debito excedeu o saldo da conta");

if ( balanço >= 50.00 )
balanço = balanço - deb;

}
public double getBalance()
{
return balanço;
}

renzonuccitelli

Se vc reparar, na linha 4 e 8, vc retira o valor do débito. Em nenhuma hora vc faz o teste em relação ao debito, apenas ao balanço. Talvez ficaria melhor assim

public void debit ( double deb )
{ 
if(balanço - deb<0)
System.out.printf(" Quantia de debito excedeu o saldo da conta");

else 
balanço -=deb;

}

public double getBalance()
{
return balanço;
}
renatorudolf

me desculpe, pela falha

como faço pra sair apenas uma resposta

renzonuccitelli

Não precisa pedir desculpa não, com o tempo a gente vai aprendendo. Vê se o código que coloquei funciona como vc quer.

Quanto a tag code, vc tem que apertar o botao uma vez, colocar o código que vc quer, e depois apertar o botao de novo pra fechar a tag…

renatorudolf

ainda continua saindo com 2 resultados
quando coloco um valor menor q 50 ele me traz o resutaldo certo, agora quando coloco um resultado maior
que 50 ele me tras os 2 resultados

renzonuccitelli

Vc usou o codigo abaixo?

public void debit ( double deb )
{ 
if(balanço - deb<0)
System.out.printf(" Quantia de debito excedeu o saldo da conta");

else 
balanço -=deb;

}

public double getBalance()
{
return balanço;
}

Se usou, coloque o código em que vc chama o método debit pra eu dar uma olhada...

renatorudolf

System.out.print("\n Insira um valor para saque:"); double Cconta = input.nextDouble(); my.debit(Cconta);

renatorudolf

tem algo errado ?

JonasZzZz

você por acaso colocou depois desse my.Debit(Cconta), algo do tipo…

System.out.println(“O seu saldo é de” + my.getBalance());

só pra saber…

renatorudolf

sim brother

System.out.printf(" O valor agora é: %.2f ", my.getBalance() );
JonasZzZz

se essa linha está no main()… ele vai gerar essa saída:

Quantia de debito excedeu o saldo da contao saldo O valor agora é: (valor)

bom, uma solução é colocar essa linha na classe Conta que contem o campo balanco(ah… nao use ç para programar… ex: balanço) :

class Conta{

	double balanco = 100;

	public void debit ( double deb ){
		if(balanco - deb<0){// você pode perguntar se deb > balanco... fica melhor 
                                             //pois o computador só faz uma conta...
			System.out.println(" Quantia de debito excedeu o saldo da conta\n");
	}
		else{
		balanco -=deb;
		System.out.printf("A quantia agora é: %.2f\n",getBalance());
		}

	}

	public double getBalance(){
		return balanco;
	}
}
import java.util.Scanner;

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

		Conta c = new Conta();

		Scanner input = new Scanner(System.in);

		System.out.print("Digite o debito");
		double debito = input.nextDouble();

		c.debit(debito);
	}
}

existem varias solções… essa é uma…

[ ]'s

JonasZzZz

qualquer coisa pode perguntar…

renatorudolf

muito obrigado jonas
tava errando na função if “na hora do computador fazer a conta”

Criado 22 de novembro de 2008
Ultima resposta 26 de nov. de 2008
Respostas 18
Participantes 3