Oi Felipe, tudo bem?
Então, esse código está errado pois as variáveis foram declaradas dentro de um escopo de bloco. Lembrando que escopo de bloco é tudo que está dentro de um { }. Ou seja, quando declaramos a variável double salario = 4200.0;
dentro da nossa condicional (if) ela só será vista dentro desse bloco de código, e não fora, por isso causa um erro, já que tentamos acessar essa variável fora do escopo em que ela foi declarada.
O correto seria:
public class TesteSalario {
public static void main(String[] args) {
boolean foiPromovido = true;
double salario;
if(foiPromovido) {
salario = 4200.0;
} else {
salario = 3800.0;
}
System.out.println(salario);
}
}
Veja que agora declaramos a variável salario fora do if, e apenas alteramos o seu valor, tornando-a visível em todo nosso código, portanto não teremos mais erros na hora de printar essa variável.
Espero ter ajudado, qualquer outra dúvida estou a disposição, abraços e bons estudos!