1
resposta

a soma no for não tem validade no if?

Se ele sai do "for" com i valendo 1, como no if ( 1 % 3 == 0) sairia com 0 e então daria o break para imprimir 1?

teste de mesa i = 0 < 5 // soma 1 e loop 1 % 3 == 0? // não, soma 1 e volta para o loop 2 < 5? // soma 1 e loop 3 % 3 == 0? // sim, soma 1 e saia do loop imprima 4

1 resposta
public class Teste {
    public static void main(String[] args) {
        int i;
        for (i = 0; i < 5; i++) {
            if (i++ % 3 == 0) {
                break;
            }
        }
        System.out.println(i);
    }
}

O "i" entra no "for" valendo 0, o valor do "i" é usado antes de fazer "i++" dentro do "if". Então a conta é "0 % 3 == 0" que dá "true".

Primeiro calcula o "0 % 3 == 0" e depois o "i" passa de "0" para "1".