Why is this code in infinite loop?

0

When I run it, it starts calculating the value of the bracelet infinitely.

import java.util.Scanner;
public class Sistema_Bichara{
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        System.out.println("Digite o o número referente ao tamanho da(s) pulseira(s)\n1.Pequena (17cm) - R$180,00\n2.Média (18cm) - R$200,00\n3.Grande (20cm) - R$240,00\n4.Prosseguir para escolha de pingentes.");
        int digita = in.nextInt();
        int quantidadegrande = 0;
        int quantidademedia = 0;
        int quantidadepequena = 0;
        int tamanhopulseira = 0;

while (digita != 4){
        switch(digita){
            case 1:
            valor += 180;
            tamanhopulseira = 17;
            quantidadepequena += 1;
            break;
            case 2:
            valor += 200;
            tamanhopulseira = 18;
            quantidademedia += 1;
            break;
            case 3:
            valor += 240;
            tamanhopulseira = 20;
            quantidadegrande += 1;
            break;
        }
        System.out.println("Total: " +valor);
        }
       if(digita==4){
         System.out.println("\nVocê escolheu:" +quantidadepequena);
         System.out.println(" pulseiras pequenas, " +quantidademedia);
         System.out.println(" pulseiras médias e " +quantidadegrande);
         System.out.println(" pulseiras grandes.");
         System.out.println("\nDigite 1 para prosseguir para a escolha de pingentes.");
         digita = in.nextInt();
       }
    
asked by anonymous 29.03.2015 / 16:01

1 answer

2

Because the value of the digita variable does not change upon entering loop .

Request a new data entry after switch :

switch(digita) {
   // ...
}
digita = in.nextInt();
    
29.03.2015 / 16:09