Why is this code on an infinite loop?

Asked

Viewed 75 times

0

When I run it starts to calculate infinitely the value of the bracelet..

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();
       }

1 answer

2


Because the variable value digita shall not be amended by entering loop.

Request a new data entry after the switch:

switch(digita) {
   // ...
}
digita = in.nextInt();
  • Solved! thanks a lot ;)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.