For inside a Java Switch

2

Good evening, I would like to know if there is a way to declare a 'FOR' within a SWITCH CASE in Java because Netbeans is accusing a bug well in this part. I'm trying to make an application to play a guessing game just like I read on the site

link

I will post the whole code for the evaluation of the most experienced. I would like to comment on the operation as a whole if I find some flaw.

package advinhacao;

import java.util.Scanner;

/**
 * By Lucas Menchone
 */
public class Advinhacao {

public static void main(String[] args) {

    boolean fim;
    String resposta;
    int numero,
        i,
        caso,
        resultado;

    resultado = 0;
    numero = 1;
    i = 1;
    fim = false;

    System.out.printf("Jogo da advinhação\n pense em um número entre 10 a 100. \n"
            + "O computador irá perguntar várias vezes se seu numero é par ou impar.\n"
            + "A cada vez que for impar, mentalmente subtraia uma unidade do numero e depois divida-o por 2\n"
            + "A cada vez que for par, divida mentalmente o numero por 2\n"
            + "O jogo termina quando o resultado final das suas contas for 1");

    while (fim == false) {
        int soma[] = new int[i];
        Scanner entrada = new Scanner(System.in);
        System.out.println("O numero é impar ? digite 1 se sim, 2 se n ou 3 se o valor final resultou 1");
        resposta = entrada.nextLine();
        caso = Integer.parseInt(resposta);
        switch (caso) {
            case 1:
                numero -= 1;
                numero /= 2;
                soma[i] = numero;
                i++;
                break;

            case 2:
                numero /= 2;
                break;

            case 3:
                for (i !== 0, i-- ) //NESTE 'FOR' ESTA DANDO "';' EXPECTED" e eu não tenho ideia de onde faltou ';' aqui ou se realmente eu estou fazendo algo q n posso
                { 
                    resultado += soma[i];
                }
                fim = true;
                System.out.println(resultado);
                break;
            default:
                System.out.println("opção não disponível, por favor selecione 1,2 ou 3");

        }

    }

}

}

    
asked by anonymous 21.04.2016 / 04:11

1 answer

4

As I said, it's a semantic error in your for:

for(i !== 0, i-- )

No instructions are separated within com for, but with ; :

  case 3:
    for (;i != 0; i-- )
     { 
          resultado += soma[i];
     }

That way you're ignoring the iterator statement, since you started it out.

Maybe while would fit better:

while(i != 0){
  resultado += soma[i];
  i--;
}
    
21.04.2016 / 04:34