Run loop again

2

Code:

while (digita != 4){
    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.");
    digita = in.nextInt();
    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 && tamanhopulseira == 0){
    System.out.println("Você deve escolher pelo menos uma pulseira de qualquer tamanho!");
}

Well, in this code when the user chooses option 4 without having chosen any of the other options, the program sends an error message, but as I do next to that error option it sends the user back to while ?

    
asked by anonymous 29.03.2015 / 16:19

2 answers

2

You can do this:

while (digita != 4) {
    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.");
    digita = in.nextInt();
    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;
        case 4:
            if (tamanhopulseira == 0) {
                System.out.println("Você deve escolher pelo menos uma pulseira de qualquer tamanho!");
                digita = 0;
            }
        default:
            System.out.println("Você deve escolher de 1 à 4");
    }
    System.out.println("Total: " +valor);
}

You are checking if any bracelets have been selected if you enter 4 and do not leave the loop until at least one of them has been selected. It also holds in the loop if something invalid is entered.

    
29.03.2015 / 16:29
0

Put a while around everything, which only exits when a boolean variable is set, and only put true in that variable when everything is filled in correctly:

boolean opcaoEscolhida = false;
while (!opcaoEscolhida){
    while (digita != 4){
        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.");
        digita = in.nextInt();
        switch(digita){
            case 1:
              valor += 180;
              tamanhopulseira = 17;
              quantidadepequena += 1;
              opcaoEscolhida = true;
              break;
            case 2:
              valor += 200;
              tamanhopulseira = 18;
              quantidademedia += 1;
              opcaoEscolhida = true;
              break;
            case 3:
              valor += 240;
              tamanhopulseira = 20;
              quantidadegrande += 1;
              opcaoEscolhida = true;
              break;
        }
        System.out.println("Total: " +valor);
    }
    if(!opcaoEscolhida){
        System.out.println("Você deve escolher pelo menos uma pulseira de qualquer tamanho!");
    }
}
    
29.03.2015 / 16:29