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
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.
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!