Ir ao conteúdo
  • Cadastre-se

Exercício em java, ajuda no if


VampireHunterD

Posts recomendados

Suponha que uma empresa faz uma promoção sobre as compras realizadas por seus clientes. De acordo com o valor total da compra o cliente receberá um desconto conforme tabela:

Valor da Compra (R$) Desconto(%)

1%

Abaixo de 100,00 5%

De 100,00 até 299,99 8%

De 300,00 até 599,99 10%

600,00 ou mais

Crie um programa em Java para ler o valor total da compra, calcular e imprimir o valor do desconto recebido e o novo total a ser pago.

Scanner input = new Scanner(System.in);

double valor, desconto, total;

System.out.print("\nDigite o valor da compra: ");

valor = input.nextDouble();

if(valor <= 100,00 && valor >= 101,00)

Gostaria de ajuda se estou fazendo certo ou não, se estiver errado como eu declaro no if??

Link para o comentário
Compartilhar em outros sites

A ideia é essa. Só que a condição que você criou nunca será true, pois o valor não pode ser menor ou igual a 100 e ao mesmo tempo ser maior ou igual a 101.

Você irá utilizar if e else if. Basta criar os condicionais corretamente de acordo com os intervalos:

if(valor<100,00)

{

1%

}

else if(valor>=100,00 && valor<300,00)

{

5%

}

else if(valor>=300,00 && valor<600,00)

{

8%

}

else // ou else if(valor>=600){10%}

{

10%

}

Para aprender a programar, só praticando.

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

static public void main (String args[])

{

Scanner input = new Scanner(System.in);

double valortotal, desconto;

System.out.print("\nDigite o valor da compra: ");

valortotal = input.nextDouble();

if(valortotal <100.00)

1%

else if(valortotal >= 100.00 && valortotal <300.00)

5%

else if(valortotal >=300.00 && valortotal <600.00)

8%

else(valortotal >=600.00)

10%

System.out.print("\nTotal com desconto : " +desconto+("0.00"));

System.out.print("\n...Fim do Programa...");

obrigado pela ajuda eu fiz assim só que ainda tanto erro, sim estou fazendo varios exercícios para ver se eu aprendo melhor.

Link para o comentário
Compartilhar em outros sites

  • Moderador

sua logica esta quase certa amigo.. mas nao está.

no anuncio diz que calcula-se 5% de desconto com valores abaixo de 100 certo?

então no if você faz: if( valor < 100)... no outro você faz if( (valor >= 100) && (valor <= 299))

e por ai vai.. nao esqueça de que para fazer operaçoes logicas dentro do bloco do if.. deves separar por parenteses quando há mais de um comparador. agora o calculo da percentagem é com você amigo. apenas dei um pontapé inicial

Obs: so uma dica: para calcular a percentagem deves dividir por 100. nao esqueça.

por exemplo 20 % de 150 você faz: ((150 * 20) / 100) = 30 então 30 é 20% de 150

Link para o comentário
Compartilhar em outros sites

double valortotal, desconto;

System.out.print("\nDigite o valor da compra: ");

valortotal = input.nextDouble();

if(valortotal <= 100.00)

desconto = 1 - 0.01;

desconto = valortotal * desconto;

else if (valortotal >= 100.00 && valortotal <= 300.00)

desconto = 1 - 0.05;

desconto = valortotal * desconto;

else if (valortotal >= 300.00 && valortotal <= 600.00)

desconto = 1 - 0.08;

desconto = valortotal * desconto;

else (valortotal >= 600.00)

desconto = 1 - 0.10;

desconto = valortotal - desconto;

System.out.print("\nTotal com desconto : " +desconto+("0.00"));

System.out.print("\n...Fim do Programa...");

}

}

Montei assim problema que agora esta tanto erro no else if?? do colocando alguma coisa errada, e o calculo tb não sei se esta corredo até agora ideia foi essa.

Link para o comentário
Compartilhar em outros sites

Esses códigos que você está colocando, é exatamente como você está tentando rodar?

Por que você precisa colocar entre {} o que vem depois dos ifs


if(valortotal <= 100.00)
{
desconto = 1 - 0.01;
desconto = valortotal * desconto;
}
else if (valortotal >= 100.00 && valortotal <= 300.00)
{
desconto = 1 - 0.05;
desconto = valortotal * desconto;
}
else if (valortotal >= 300.00 && valortotal <= 600.00)
{
desconto = 1 - 0.08;
desconto = valortotal * desconto;
}
else
{
desconto = 1 - 0.10;
desconto = valortotal - desconto;
}

E como mostrado no código acima, o else não recebe nada, é só o que não pertence ao if.

Link para o comentário
Compartilhar em outros sites

...

e por ai vai.. nao esqueça de que para fazer operaçoes logicas dentro do bloco do if.. deves separar por parenteses quando há mais de um comparador. agora o calculo da percentagem é com você amigo. apenas dei um pontapé inicial

...

Cara, o uso de parenteses separando as operações lógicas dentro de um if não é obrigatório... e na minha visão, isso só deixa o código mais poluído... mas daí vai de cada um.

Link para o comentário
Compartilhar em outros sites

if(valor>0 && valor<10)

Mas, se além disso, 'valor' tivesse que ser par, por exemplo?

if( (valor>0 && valor<10) && (valor%2==0) )

Aí não tem jeito, com um pouquinho mais de complexidade, o uso de paranteses já se torna obrigatório.

Link para o comentário
Compartilhar em outros sites

  • Moderador

nao acho que torna o codigo mais poluido, pelo contrário, fica mais organizado. deixa mais em evidencia o que cada bloco esta fazendo. da mesma forma que usa os parentes em uma expressao.. os blocos de if nao sao diferentes.

@WhiteDog, sua logica nas expressoes ta estranha onde você diz que se o valor for menor ou igual a 100 dá 1% e ao mesmo tempo se o valor for maior ou igual a 100 ele dá 5%.. se você fizer isso sempre que informar 100 ele vai dar 1 % apenas.

Já o amigo rgb, postou a logica certa onde o valor for menor do que 100 ele dá 1% e o valor for maior ou igual a 100 ele dá 5%. agora só tem que cuidar as virgulas.. no java por padrão é usado o ponto.

de qualquer forma.. mesmo você declarando como double.. nao é preciso você colocar 100.00 pra fazer a comparaçao... colocando 100, 300.. 600.. ele ja faz a comparaçao.

Link para o comentário
Compartilhar em outros sites

Gostaria de agradecer pela ajuda de todos estou começando agora em java ainda sou lendo para resolver alguns problemas sei bem teoria, muitas vezes apanho na pratica.

Scanner d = new Scanner(System.in);

double valor, valort, desconto;

System.out.println("\nDigite o valor da compra: ");

valor = d.nextInt();

if (valor < 100.00)

desconto = (valor*(1/100));

valort = desconto+valor;

else if (valor >= 100.00 || valor < 300.00)

desconto = (valor*(5/100));

valort = desconto+valor;

else if (valor >= 300.00 || valor < 600.00)

desconto = (valor*(8/100));

valort = desconto+valor;

else if (valor >= 600.00)

desconto = (valor*(10/100));

valort = desconto+valor;

System.out.print("\nTotal do desconto : " +desconto);

System.out.print("\nTotal com desconto : " +valort);

System.out.print("\n...Fim do Programa...");

}

}

Eu refiz novamente o exercício agora esta tanto erro no tres else if, alguém poderia me dizer o que estou errando agora??

observação: do usando Jcreator.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • Moderador

Amigo use o netbeans. é muito melhor.

você nao colocou as chaves.. tente assim:


if (valor < 100.00)[B][COLOR="DarkGreen"]{[/COLOR][/B]

desconto = (valor*(1/100));
valort = desconto+valor;

[B][COLOR="DarkGreen"]}[/COLOR][/B]else if (valor >= 100.00 || valor < 300.00)[B][COLOR="Red"]{[/COLOR][/B]
desconto = (valor*(5/100));
valort = desconto+valor;

[B][COLOR="Red"]}[/COLOR][/B]else if (valor >= 300.00 || valor < 600.00)[B][COLOR="Blue"]{[/COLOR][/B]
desconto = (valor*(8/100));
valort = desconto+valor;

[B][COLOR="Blue"]}[/COLOR][/B]else if (valor >= 600.00)[COLOR="Purple"][B]{[/B][/COLOR]
desconto = (valor*(10/100));
valort = desconto+valor;

[B][COLOR="Purple"]}[/COLOR][/B]

coloquei por cores para você saber onde começa e onde termina

veja se isso resolve

Link para o comentário
Compartilhar em outros sites

Amigo use o netbeans. é muito melhor.

você nao colocou as chaves.. tente assim:


if (valor < 100.00)[B][COLOR="DarkGreen"]{[/COLOR][/B]

desconto = (valor*(1/100));
valort = desconto+valor;

[B][COLOR="DarkGreen"]}[/COLOR][/B]else if (valor >= 100.00 || valor < 300.00)[B][COLOR="Red"]{[/COLOR][/B]
desconto = (valor*(5/100));
valort = desconto+valor;

[B][COLOR="Red"]}[/COLOR][/B]else if (valor >= 300.00 || valor < 600.00)[B][COLOR="Blue"]{[/COLOR][/B]
desconto = (valor*(8/100));
valort = desconto+valor;

[B][COLOR="Blue"]}[/COLOR][/B]else if (valor >= 600.00)[COLOR="Purple"][B]{[/B][/COLOR]
desconto = (valor*(10/100));
valort = desconto+valor;

[B][COLOR="Purple"]}[/COLOR][/B]

coloquei por cores para você saber onde começa e onde termina

veja se isso resolve

sim realmente resolveu só que agora o erro da dando no final do codigo

System.out.print("\nTotal do desconto : " +desconto);

System.out.print("\nTotal com desconto : " + valort);

Link para o comentário
Compartilhar em outros sites

Scanner d = new Scanner(System.in);

double valor, valort, desconto = 0;

System.out.println("\nDigite o valor da compra: ");

valor = d.nextInt();

if (valor < 100.00){

desconto = (0.01)* valor;

}else if (valor >= 100.00 && valor < 300.00){

desconto = (0.05)* valor;

}else if (valor >= 300.00 && valor < 600.00){

desconto = (0.08)* valor;

}else if (valor >= 600.00){

desconto = (0.10)* valor;

}

valort = valor - desconto;

System.out.println("Total do desconto : " +desconto);

System.out.println("Total com desconto : " + valort);

System.out.print("\n...Fim do Programa...");

}

}

Já testei e esta funcionando correto mais uma vez obrigado pela ajuda. Como na faculdade usa Jcreator por isso uso ele

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...