Loops Caixa eletrônico - Ajuda [resolvido]

Galera, procurei no fórum mas são tantos posts que fica difícil encontrar o que procuro, mas enfim, chega de xororô e partir para o que importa!!

Estou fazendo um programa de um caixa eletrônico, o programa solicita ao usuário o número de cédulas de 50, 10, 5 e 1, iniciais e depois solicita o saque. Tenho que mostrar o numero de cédulas de cada nota usadas para o saque (se for possível) se não, ( informar saque indisponível), fiz seguinte código:

[code]
int n1 = 50;
int n2 = 10;
int n3 = 5;
int n4 = 1;
int totalN1 = 0;
int totalN2 = 0;
int totalN3 = 0;
int totalN4 = 0;

    System.out.print("Informe o total de cédulas de R$50,00: ");
    int c1 = sc.nextInt();
    System.out.print("Informe o total de cédulas de R$10,00: ");
    int c2 = sc.nextInt();
    System.out.print("Informe o total de cédulas de R$5,00: ");
    int c3 = sc.nextInt();
    System.out.print("informe o total de cédulas de R$1,00: ");
    int c4 = sc.nextInt();
    int totalCedulas = c1 + c2 + c3 + c4;        
        
    while (totalCedulas != 0){
        
        System.out.print("Informe o valor do saque: ");
        int saque = sc.nextInt(); 
        
        do {
            totalN1 = saque / n1;
            totalN2 = (saque % n1) / n2;
            totalN3 = ((saque % n1) % n2) / n3;
            totalN4 = (((saque % n1) % n2) % n3) / n4;              

            if (c1 < totalN1 || c2 < totalN2 || c3 < totalN3 || c4 < totalN4){
               System.out.print("Saque indisponível\n");
            }else

            System.out.printf("%s%d\n%s%d\n%s%d\n%s%d\n",
                    "Quantidade de notas de R$ 50,00: ", totalN1,
                    "Quantidade de notas de R$ 10,00: ", totalN2,
                    "Quantidade de notas de R$ 5,00: ", totalN3,
                    "Quantidade de notas de R$ 1,00: ", totalN4);
            
            int totalC1 = c1 - totalN1;
            int totalC2 = c2 - totalN2;
            int totalC3 = c3 - totalN3;
            int totalC4 = c4;

                c1 = c1 - totalN1;
                c2 = c2 - totalN2;
                c3 = c3 - totalN3;
                c4 = c4 - totalN4;

            totalCedulas = (totalC1 + totalC2 + totalC3 + totalC4);
        
        } while ((((saque % n1) % n2) % n3) % n4 != 0);
            
    }
        System.out.print("*****Não há mais cédulas no caixa*****\n");            
}

}[/code]

Porém não estou conseguindo sair do loop sempre que não houver mais notas no caixa e informar que não há mais cédulas no caixa… alguma sugestão??

para sair de loop pode-se usar um

break;

Tem alguma coisa esquisita… se eu determino que há inicialmente 0,0,1,1 para 50, 10, 5, 1 respectivamente, e eu entro com o valor de saque = 2, o programa faz o loop apenas 2 vezes!!! que vodoo é este??

[quote=manolimars]para sair de loop pode-se usar um

break; [/quote]

beleza, vou tentar aki!

vixi, o problema persiste… alguém pode dar uma luz?

humm,
tentei aki mas não consegui entender claramente a idéia do seu programa

[quote=manolimars]humm,
tentei aki mas não consegui entender claramente a idéia do seu programa[/quote]

A idéia é a seguinte, eu entro com os valores do total das notas de 50,10,5 e 1 que deverá estar inicialmente na máquina, em seguida, o cliente do banco faz um saque, se o valor for menor que o total no caixa, o saque é permitido, se não, o caixa informa saque indisponível, então, se o saque é válido, o programa calcula quantas notas de cada valor será necessária para o devido saque, e este valor é subtraido de cada valor de nota inicial, e se sobrar notas no caixa, ele fica aberto para novos saques, senão aparece a mensagem que nao há cedulas no caixa. To errando em alguma coisa no fim do loop, mas não estou conseguindo resolver aki, se alguém ai puder ajudar, agradeço!

Vamos lá galera!! Somos o maior fórum brasileiro sobre o Java!! Juntos somos todos, sozinhos somos um só!! rsrs

Galera, uma dica que eu li no livro, Java use a cabeça e que deu certo… Bebam água!!! Pô, tomei quase um litro agora, aki em Mauá no Abc-sp ta um puta calor!! e do nada coloquei um else e algumas chaves e o programa está rodando que é uma beleza!! Só não sei se está da forma perfeita, mas tá funfando direito aki! Mais uma vez agradeço a todos que ajudaram e que quando meus conhecimentos permitir, ajudarei a todos tb!! grato mestres!

Segue o meu código:

[code]
int n1 = 50;
int n2 = 10;
int n3 = 5;
int n4 = 1;
int totalN1 = 0;
int totalN2 = 0;
int totalN3 = 0;
int totalN4 = 0;

    System.out.print("Informe o total de cédulas de R$50,00: ");
    int c1 = sc.nextInt();
    System.out.print("Informe o total de cédulas de R$10,00: ");
    int c2 = sc.nextInt();
    System.out.print("Informe o total de cédulas de R$5,00: ");
    int c3 = sc.nextInt();
    System.out.print("informe o total de cédulas de R$1,00: ");
    int c4 = sc.nextInt();
    int totalCedulas = c1 + c2 + c3 + c4;        
    int valorTotal = c1*n1 + c2*n2 + c3*n3 + c4*n4;
    
    while (totalCedulas != 0){

        System.out.print("Informe o valor do saque: ");
        int saque = sc.nextInt(); 

        if (saque > valorTotal){
            System.out.print("Saque Indisponível\n");            }

        else
        do {
            totalN1 = saque / n1;
            totalN2 = (saque % n1) / n2;
            totalN3 = ((saque % n1) % n2) / n3;
            totalN4 = (((saque % n1) % n2) % n3) / n4;              

            if (c1 < totalN1 || c2 < totalN2 || c3 < totalN3 || c4 < totalN4){
               System.out.print("Saque indisponível\n");

            }
            else {

            System.out.printf("%s%d\n%s%d\n%s%d\n%s%d\n",
                    "Quantidade de notas de R$ 50,00: ", totalN1,
                    "Quantidade de notas de R$ 10,00: ", totalN2,
                    "Quantidade de notas de R$ 5,00: ", totalN3,
                    "Quantidade de notas de R$ 1,00: ", totalN4);
            
            int totalC1 = c1 - totalN1;
            int totalC2 = c2 - totalN2;
            int totalC3 = c3 - totalN3;
            int totalC4 = c4 - totalN4;
            if (totalC4 < 0){
                totalC4 = c4;
            }
            else {
                c1 = c1 - totalN1;
                c2 = c2 - totalN2;
                c3 = c3 - totalN3;
                c4 = c4 - totalN4;

            totalCedulas = (totalC1 + totalC2 + totalC3 + totalC4);
            }
            }
        } while ((((saque % n1) % n2) % n3) % n4 != 0);
            
    }
        System.out.print("*****Não há mais cédulas no caixa*****\n");
}

}[/code]