Estrutura de Banco metodo saca() e deposita()

Opa, tava resolvendo uns exercícios e empanquei em um que é para implementar uma classe com metodos saca e deposita só que tem qu eseguir o seguintes criterios:

As operações de saque devem debitar no saldo e em seguida no crédito especial. Se o valor a sacar for superior ao saldo + limite, deve ser impressa a mensagem não é possível debitar por insuficiência de limite!
As operações de credito devem inicialmente cobrir o credito especial e o restante deve ser considerado saldo na conta.

Não consegui desenvolver essa parte do programa… todo mundo começa com um limite de 200 e saldo de 900

package Banco;

public class Modelo {
	int saldo = 900, limite = 200;	
	
	public void saca(int valor) {
		if (valor > saldo+limite) {
			System.out.println("Não é possível debitar por insuficiência de limite.");
		}
		else {			
			if (valor > saldo) {		
				limite = valor - saldo;        // ta errado aqui
				valor -= limite;		      // ta errado aqui
				saldo -= valor;               // ta errado aqui
				System.out.println("Saldo: " + saldo + "\tLimite: " + limite);
			}
			else {
				System.out.println("Saldo: " + saldo + "\tLimite: " + limite);
				saldo -= valor;
			}			
		}
	}
	
	public void deposita(int valor) {
		if (limite < 200) {			
			valor -= 200 + limite;            // ta errado aqui   me enrrolei todo nessa parte -.-
			saldo += valor;			  // ta errado aqui     
			limite += 200-limite;           // ta errado aqui
			System.out.println("Saldo: " + saldo + "\tLimite: " + limite);
		}
		else {
			limite += valor;
			System.out.println("Saldo: " + saldo + "\tLimite: " + limite);
		}
	}
		
	public static void main(String[] args) {
		Modelo model = new Modelo();
		model.saca(1000); 
		model.deposita(500); 
		model.saca(600); 
		model.saca(1000); 
		model.deposita(1000); 
		model.saca(200); 
		
	}
}

Refaça o exercício primeiro sem limite, verifique se funciona, depois implemente o limite.

O problema não é fazer o exercicio sem o limite e sim fazer com o limite… eu não vejo um jeito de quando o limite for menor que 200 ele depositar no limite para cobrir a diferença e o restante depositar no saldo.

E a mesma coisa com o metodo saca… sacar primeiro do saldo e se não for suficiente ele sacar do limite não importanto se ficar negativo o saldo.

:wink:

[code]saldo = saldo - saque;

if (saldo < 0) {
limite = limite + saldo;
saldo = 0;
}[/code][code]limite = limite + deposito;

if (limite > max_limite) {
saldo = saldo + limite - max_limite;
limite = max_limite;
}[/code]

Tão simples ne? -.-

funcionou perfeito bruno, valeu cara… tenho que melhorar minha lógica, tava quebrando a cabeça com isso :frowning:

:wink: