[RESOLVIDO] While a cada x vezes

Rapazeada, eu travei aqui no While.

 int i = 0;
 while (i < 2) {
 System.out.println(rating);
   rating = 0.5;
   i++;
 }
 System.out.println("Retornando");
 i = 0;

Vou usar o exemplo de curtidas:
Eu queria executar algo a cada 2 curtidas, quando atingir 2, o while vira zero e conta mais dois de novo.

Eu tentei isso, mas não funcionou…

1 curtida

Bom Dia.
Acho que com apenas um while não é possível pois depois que você “estourar” o valor do i(o valor do i ser >= 2) o programa não irá voltar a executar o while, apenas se ele estiver dentro de outro bloco de de repetição(while,for, etc…).

Eu faria algo assim:

  int i = 0;
     while (i < 2) {
         if(i<1){
           System.out.println(rating);
            rating = 0.5;
            i++;}
           else{
             System.out.println(rating);
             rating = 0.5;
             i=0;
             System.out.println("Retornando"); }

              }
1 curtida

me desculpe mas qual é a diferença entre isso e um loop infinito?

private int curtidas;

void curtir() {
    curtidas++;
    if (curtidas == 2) {
        curtidas = 0;
        executaAlgo();
    }
}
1 curtida

pode ser generalizado para

private int curtidas;
private int vezes; // 1, 2, 3, N...
void curtir() {
    curtidas++;
    if (curtidas % vezes == 0) {
        
        executaAlgo();

        curtidas = 0; //opcional
    }
}
2 curtidas

Opa, funcionou perfeito aqui mano, valeu!

Então, eu não estava conseguindo pensar na melhor forma de zerar o i quando chegasse onde queria. Mas valeu pela resposta, funcionou perfeito aqui também!

Valeu @staroski, @peczenyj, @KPS! Funcionou perfeito aqui!


Edit: Achei que tinha colocado tudo em uma resposta só…