[RESOLVIDO]Metodo

public class Estoque {

	String nomeProduto;
	float valor;
	int qtd;
	
	public Estoque(String nomeProduto, float valor, int qtd){
		
		this.nomeProduto = nomeProduto;
		this.valor = valor;
		this.qtd = qtd;
	}
	
	public void imprimir(){
		
		System.out.printf("Nome do produto: %s\n", nomeProduto);
		System.out.printf("Digite o valor do produto: %.2f\n", valor);
		System.out.printf("Digite a quantidade do produto: %d\n", qtd);
	}
	
	public boolean isverificarDisponibilidade(int quant){
		
		int quantEstoque = 0;
		
		if(){
			return false;
		}
		if(){
		return true;
		}
		return false;
	}
	
}

queria uma dica como fazer esse metodo que tem como descrição:

verificarDisponibilidade: Deve receber um inteiro como entrada. O método verifica se
ainda há produtos disponíveis na quantidade recebida como parâmetro. Deve retorna false, se não
houver mais produtos ou se a quantidade existente for menor que o valor informado na chamada
do método. Caso a quantidade de produtos seja maior que o valor informado, o método retorna
true.

tentei fazer assim:
if(qtd == 0 && qtdDisponivel < qtd )
return false
if(qtd > qtdDisponivel)
return true

tentei fazer assim mas nao deu certo alguem poderia me ajudar

Dessa forma como fez ele vai retornar true caso a quantidade solicitada seja maior que a quantidade disponível. Isso não me parece correto.

Tenta fazer algo como:

"Se quantidadeRecebida menor que quantidadeDisponivel retorna Verdadeiro, se não, retorna falso"

Já tentou isso?

kara tudo bem? eu percebi que sua logica do if está correta, mas o codigo está incorreto tenta colocar

if((qtd == 0) &&( qtdDisponivel < qtd )) 

pois quando você utiliza o && é necessario você acrescentar o ()para que o programa entenda.

Um abraço

[quote=Jeanfbs]kara tudo bem? eu percebi que sua logica do if está correta, mas o codigo está incorreto tenta colocar

if((qtd == 0) &&( qtdDisponivel < qtd )) 

pois quando você utiliza o && é necessario você acrescentar o ()para que o programa entenda.

Um abraço[/quote]

Na verdade a lógica está incorreta, ele deve verificar se a quantidade é igual a 0 “OU” se a quantidade disponível está abaixo da quantidade solicitada. Outra coisa, vc quer verificar se a “qtd” é igual a 0 ou se a “qtdDisponivel” é igual a 0?
Acho q vc deve mudar seu código para:

if((qtdDisponivel == 0) || (qtdDisponivel < qtd))

Mas eu ainda ficaria com a sugestão do di.magdaleno, verificar se a quantidade solicitada é menor que a disponível e retonar true.

[quote=Jeanfbs]kara tudo bem? eu percebi que sua logica do if está correta, mas o codigo está incorreto tenta colocar

if((qtd == 0) &&( qtdDisponivel < qtd )) 

pois quando você utiliza o && é necessario você acrescentar o ()para que o programa entenda.

Um abraço[/quote]

Nesse caso não precisa usar parentese para separar as condições, pois o && já está separando. Não tem problema usar, mas não é necessário.

Usa-se parentese quando quer que duas condições diferentes seja apenas uma quando existe uma outra. Confuso neh? Vamos à códigos:

[code]if(idade > 30 && idade <= 50); //Só vai pegar as idades entre 31 && 50.

if((idade > 30 && idade <= 50) && sexo == ‘f’); // Vai pegar mulheres entre 31 e 50 anos.[/code]

Percebeu a utilidade dos parenteses? Eu separei a condição em dois membros, onde só será verdadeiro caso as duas sejam verdadeiras.

No primeiro membro, eu tenho dois sub membros, onde esse membro só será verdadeiro caso a idade esteja entre os dois sub membros.

brother estive com o mesmo problema para implementa uma tela de venda e consegui fazer algo desse tipo q vc esta querendo aqui esta o codigo q estou utilizado caso vc queria melhora e adapitar para a sua necessidade.

[code]
public boolean verificaQuantidade() {
boolean teste = true;
double qt1 = 0;
double qt2 = 0;

        try {
            qt1 = Ulti.formatarValor(qtde);
            qt2 = Ulti.formatarValor(txtQuant.getText());
        } catch (ParseException ex) {
            Logger.getLogger(FormVenda.class.getName()).log(Level.SEVERE, null, ex);
        }
        if (qt1 < qt2) {
            teste = true;
        } else {
            teste = false;
        }
    
    return teste;
}[/code]

e para usar eu fiz assim no evento keypress

private void txtQuantKeyPressed(java.awt.event.KeyEvent evt) { int key = evt.getKeyCode(); if (key == KeyEvent.VK_ENTER) { if (!txtQuant.getText().isEmpty() && !txtIDProduto.getText().isEmpty()) { if (!verificaQuantidade()) { calcTotalUnitario(); btAdicionarItem.requestFocus(); } else { JOptionPane.showMessageDialog(this, "A quantidade que há no estoque é de " + qtde); txtQuant.requestFocus(); } } else { txtQuant.setText(null); } } }
espero q possa ter de ajudado

não é interessante ter seu valor “int quantEstoque = 0;” dessa forma, acho q um bean seria interessante para isso:

public class Estoque {
	private int quantEstoque;

	public int getQuantEstoque() {
		return quantEstoque;
	}

	public void setQuantEstoque(int quantEstoque) {
		this.quantEstoque = quantEstoque;
	} 
	
	
}

para atribuir faça:

Estoque estoque = new Estoque():
estoque.setQuantEstoque(8);

e para reuperar o valor use:

[code]
public boolean isverificarDisponibilidade(int quant){

    Estoque estoque = new Estoque():
int estoqueAtual = estoque.getQuantEstoque();
      
    if(estoqueAtual == 0 || quant < estoqueAtual) 
        return false;  
    else          
    	return true;  
   
}  [/code]

não sou muito fã de usar if else mas isso deve resolver seu problema e encapsula (get set) seu estoque deixando-o um pouco mais estável

valeu galera deu certo aqui