Ajuda com laço do while

Bom dia à todos! Estou precisando de ajuda no seguinte: Criei uma classe com um método que define uma quantidade inicial padrão de 12, e uma variável que será somada a essa quantidade (12); até ai tudo bem, porém , a soma dessa variável com a quantidade (no caso 12), não pode ultrapassar o valor de 95.
O que eu quero é que o programa pergunte ao usuário que ele digite um valor, que terá de ser somado a 12 e caso sua soma ultrapasse o valor de 95, ele exiba uma mensagem dizendo que a quantidade é inválida,pois ultrapassou 95 , e pedira que ele digite novamente o valor novamente, até que este valor esteja dentro da condição : < 95.
Estou em dúvida em como usar o comando do while nesta ocasião.
Obrigado à todos!!

O que você já tem de código? já tentou começar?
aqui ninguém faz lição de casa :slight_smile:

import javax.swing.JOptionPane; public class Soma{ public static void main(String args[]) { int i=12; int valor;; int resultado; do{ valor=Integer.parseInt(JOptionPane.showInputDialog("Digite 0 para sair\nDigite Valor: ")); while(valor>=83){ valor=Integer.parseInt(JOptionPane.showInputDialog("Digite 0 para sair\nValor invalido\nDigite novamente:")); } resultado=i+valor; if(valor==0){ JOptionPane.showMessageDialog(null,"saindo"); }else JOptionPane.showMessageDialog(null,"o valor é: "+resultado); }while(valor!=0); } }

to fazendo Analise de Sistemas e to no comecinho da faculdade, foi um bom treino para organizar as idéias.
usei do…while, misturando com while, e com um if…else…
o do {} while(condição) vai executar tudo que estiver nas chaves, equanto o valor for diferente de 0(no caso a condição dentro do while), quando tu digitar 0, ele para o bloco de execução.
usei while{}, para ficar pedindo para ele entrar novamente com o valor, caso o valor fosse 83 ou mais, pois iria ultrapassar ou dar 95. Coloquei um if…else, para quando tu digitar 0 para sair, não aparecer o valor 12 que vai ser atribuído na variável resultado, neste caso só ira exibir o resultado, caso o valor seja mais que 0.
Espero que tu entenda essa loucura que fiz ai.

abraço e bons estudos.

[quote=kleberdamasco]O que você já tem de código? já tentou começar?
aqui ninguém faz lição de casa :)[/quote] desculpa, não foi por mal…

Estou postando parte do código da classe principal somente. até agora to indo , mas o problema é que quando digito a primeira vez,por exemplo:100. quando o programa me pede para digitar de novo , ao invés dele pegar o segundo valor que eu digito, ele está pegando o primeiro e somando com 12.
Segue o código :

obj1.setQuantidadeAAdicionar(Double.parseDouble(JOptionPane.showInputDialog("Digite a quantidade de tinta para adicionar : "))+obj1.adicionaTinta(b));
       
        obj1.getQuantidadeAAdicionar();
            if(obj1.getQuantidadeAAdicionar() > obj1.getMaximo()) {
                do{
                    JOptionPane.showMessageDialog(null,"Quantidade invalida !");
                    
                  
                    JOptionPane.showInputDialog("Digite novamente :");
                      
                }while(obj1.adicionaTinta(c) < obj1.getMaximo());
            }
            

Obrigado à todos pelas ajudas!

creio que o erro ta na linha 9, tu nao atribui o valor que voce está entrando, tu só pede para entrar com o valor, mas não atribui ao obj1.setQuantidadeAAdicionar()

Eu já tentei atribuir tudo quanto é valor que voce pode imaginar na linha 9. :cry:
Mas de qualquer forma,obrigado pela ajuda!
o que eu quero é que o usuário digite um valor para a, por exemplo , e cheque se o valor informado é menor que 95,caso não seja, ele deverá pedir que digite um valor novamente e somente quando a condição valor menor que 95 (< 95) for verdadeira, ele some 12 a este valor.
Se quiserem que eu poste o código da classe e a interface e so falar!
Obrigado novamente a todos!

claroo meu, posta tudo ai…
fiquei curioso também…

Opa! Segue os códigos abaixo :

[b]Interface :

package modelo.inter;
public interface IPincel {

    double adicionaTinta(double quantidadeAAdicionar);
    String estadoPincel();
    double espacoOcupado();
    double espacoDisponivel();
    String corTintaInserida(String cor);
    
}

[/b]Classe :


package model;
import modelo.inter.IPincel;
public class Pincel implements IPincel {
    private double minimo;
    private double maximo;
    private String cor;
    private double quantidadeAAdicionar;
    private String estado;
    
     public Pincel(){
        super();
        this.setMinimo(12);
        this.setMaximo(95);
        this.setEstado("");
    }


    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }
    
    public double getMinimo() {
        return minimo;
    }

    public void setMinimo(double minimo) {
        this.minimo = minimo;
    }

    public double getMaximo() {
        return maximo;
    }

    public void setMaximo(double maximo) {
        this.maximo = maximo;
    }

    public String getCor() {
        return cor;
    }

    private void setCor(String cor) {
        this.cor = cor;
    }

    public double getQuantidadeAAdicionar() {
        return quantidadeAAdicionar;
    }

    public void setQuantidadeAAdicionar(double quantidadeAAdicionar) {
        this.quantidadeAAdicionar = quantidadeAAdicionar;
    }
    
     @Override
    public double adicionaTinta(double quantidadeAAdicionar) {
        quantidadeAAdicionar = this.quantidadeAAdicionar + this.minimo;
        return quantidadeAAdicionar;
    }

    @Override
    public String estadoPincel() {
        String estado = "";
        if(this.quantidadeAAdicionar == 0) {
            estado = "Vazio";
        }
        if(this.quantidadeAAdicionar > 1 && this.quantidadeAAdicionar <= 49) {
            estado = "Menos da metade";
        }
        if(this.quantidadeAAdicionar == 50) {
            estado = "Metade";
        }
        if(this.quantidadeAAdicionar > 51 && this.quantidadeAAdicionar <= 99) {
            estado = "Mais da metade";
        }
        if(this.quantidadeAAdicionar == 100) {
            estado = "Cheio";
        }
        
        return estado;
    }

    @Override
    public double espacoOcupado() {
        double ocupado = 0;
        ocupado =(this.quantidadeAAdicionar*100)/this.maximo;
        return ocupado;
    }

    @Override
    public double espacoDisponivel() {
        double disponivel = 0;
        disponivel = (100-this.quantidadeAAdicionar*100/this.maximo);
        return disponivel;
    }

    @Override
    public String corTintaInserida(String cor) {
        this.cor = cor;
        return cor;
    }
    
    
    public String toString(){
        String str = super.toString();
        str += String.format("\nCor : %s \nMinimo suportado em ML : %.2f \nMaximo suportado em ML: %.2f \nQuantidade a adicionar em ML : %.2f \nEstado : %s"
                + "\nEspaco ocupado : %.2f %\u0025 \nEspaco disponivel : %.2f %\u0025",this.cor
                ,this.minimo, this.maximo, this.quantidadeAAdicionar,this.estadoPincel(), this.espacoOcupado(), this.espacoDisponivel());
        return str;
    }
}

[b] Classe Principal :



package main;
import javax.swing.JOptionPane;
import model.Pincel;
public class Principal {
    public static void main(String[] args) {
        Pincel obj1 = new Pincel();
        String cor = "";
        double b =0;
        double c = 0;
        
        
        obj1.corTintaInserida(JOptionPane.showInputDialog("Digite a cor da tinta : "+cor));
        
      // 1- Erro aqui :
       obj1.setQuantidadeAAdicionar(Double.parseDouble(JOptionPane.showInputDialog("Digite a quantidade de tinta para adicionar : "))+b);  
         
        obj1.getQuantidadeAAdicionar();  
            if(obj1.getQuantidadeAAdicionar() > obj1.getMaximo()) {  
                do{  
                    JOptionPane.showMessageDialog(null,"Quantidade invalida !");  
                      
                    
                    JOptionPane.showInputDialog("Digite novamente :");  
                        
                }while(obj1.adicionaTinta(c) < obj1.getMaximo());  
            }   
            
            
        
        JOptionPane.showMessageDialog(null,obj1.toString());
    }
    
}

Abraço!