3
respostas

[Dúvida] Leitura de código

class Tst {
 int ini=0,fim=25;
 void print() { 
 System.out.println(ini+fim);
 } 
 {
 ini=fim%7;
 fim=ini*3;
 } 
 Tst(int a, int b) {
 ini+=a;
 fim+=b;
 }
 {
 ini/=2;
 fim+=10;
 } 
}
public class Main {
 public static void main(String[] args) {
 new Tst(4, -4).print();
 }
}

Saída = 24

Gostaria de saber como esse código funciona pois não compreendi o resultado ser 24.

3 respostas

Olá Thales, tudo bem?

Coloquei uns comentários no código para ajudar:

class Tst {
    int ini = 0, fim = 25; // 1° inicializa as variáveis

    void print() {
        // 5° e por último chama aqui
        System.out.println(ini + fim); // 6 + 18 = imprime 24
    }

    {
        // 2° executa esse bloco estático
        ini = fim % 7; // 25 % 7 = 4
        fim = ini * 3; // 4 * 3 = 12
    }

    Tst(int a, int b) {
        // 4° chama o construtor
        ini += a; // 2 + 4 = 6
        fim += b; // 22 - 4 = 18
    }

    {
        // 3° vai executar aqui
        ini /= 2; // 4 / 2 = 2
        fim += 10; // 12 + 12 = 22
    }
}

public class Main {
    public static void main(String[] args) {
        new Tst(4, -4).print();
    }
}

Muito obrigado, tive dúvidas na ordem das execuções e havia me esquecido do operador % que busca o resto da divisão, gratidão Otávio.

Opa, por nada Thales, consegui sanar sua dúvida? A ordem de execução desse exemplo que você mandou não é das mais simples mesmo kkk