Boa noite, tenho o seguinte exercício:Crie um programa para informar quais e quantas notas são necessárias para entregar o mínimo de cédulas para um determinado valor informado pelo usuário, Considere notas de R$ 100, R$ 50, R$ 10 e R$ 5 e R$ 1. Seu programa deve mostrar apenas as notas utilizadas. Por exemplo, ao solicitar R$18, o programa deve informar apenas a seguinte informação (note que não foram exibidas informações sobre as demais cédulas):
1 nota(s) de R$ 10.
1 nota(s) de R$ 5.
3 nota(s) de R$ 1.
import java.util.Scanner;
public class ex_03 {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
System.out.print("Digite qual valor deseja sacar: ");
int valor = entrada.nextInt();
int condicao = 0;
int nota_100 = 100;
int nota_50 = 50;
int nota_10 = 10;
int nota_5 = 5;
int nota_1 = 1;
if (valor >= 1) {
if (valor > nota_100) {
condicao = 1;
nota_100 = valor / 100;
valor = valor % 100;
//System.out.println("Notas de 100: " + nota_100);
}
if (valor > nota_50) {
condicao = 2;
nota_50 = valor / 50;
valor = valor % 50;
//System.out.println("Notas de 50: " + nota_50);
}
if (valor > nota_10) {
condicao = 3;
nota_10 = valor / 10;
valor = valor % 10;
//System.out.println("Notas de 10: " + nota_10);
}
if (valor > nota_5) {
condicao = 4;
nota_5 = valor / 5;
valor = valor % 5;
//System.out.println("Notas de 5: " + nota_5);
}
if (valor > nota_1) {
condicao = 5;
nota_1 = valor / 1;
valor = valor % 1;
//System.out.println("Notas de 1: " + nota_1);
}
} else {
System.out.println("Valor inválido");
}
switch (condicao) {
case 1:
System.out.println("Notas de 100: " + nota_100);
case 2:
System.out.println("Notas de 50: " + nota_50);
case 3:
System.out.println("Notas de 10: " + nota_10);
case 4:
System.out.println("Notas de 5: " + nota_5);
case 5:
System.out.println("Notas de 1: " + nota_1);
}
}
}
Pra esse seu problema não faz sentido utilizar o switch, pois o switch é para você selecionar uma dentre várias opções.
No seu caso, o usuário não vai escolher quais cédulas quer sacar, é o caixa eletrônico quem vai contabilizar a quantidade de cada cédula e aí você vai apresentar a quantidade de cada uma delas, para isso basta utilizar alguns if's
import java.util.Scanner;
public class Exemplo {
public static void main(String[] args) {
Exemplo programa = new Exemplo();
programa.executar();
}
private final Scanner entrada = new Scanner(System.in);
private void executar() {
System.out.print("Digite qual valor deseja sacar: ");
int valor = entrada.nextInt();
int notas100 = 0;
int notas50 = 0;
int notas10 = 0;
int notas5 = 0;
int notas1 = 0;
if (valor > 0) {
notas100 = valor / 100;
valor = valor % 100;
notas50 = valor / 50;
valor = valor % 50;
notas10 = valor / 10;
valor = valor % 10;
notas5 = valor / 5;
valor = valor % 5;
notas1 = valor / 1;
valor = valor % 1;
} else {
System.out.println("Valor inválido");
}
if (notas100 > 0) {
System.out.println("Notas de 100: " + notas100);
}
if (notas50 > 0) {
System.out.println("Notas de 50: " + notas50);
}
if (notas10 > 0) {
System.out.println("Notas de 10: " + notas10);
}
if (notas5 > 0) {
System.out.println("Notas de 5: " + notas5);
}
if (notas1 > 0) {
System.out.println("Notas de 1: " + notas1);
}
}
}
Então brother, eu entendi exatamente o q vc disse. Na minha ideia usando somente os if’s q nem o seu exemplo funcionária . O problema é que é um exercício de faculdade, o professor solicitou pra usar a estrutura switch -case no exercício. Já tentei colocar cada if como uma condição, mas aí aparece valores aleatórios.
E ele quer que utilize o switch para fazer o quê exatamente?