Boa Caroline! A lógica está correta!! ;)
A única coisa que eu mudaria são os ifs e elses que estão um dentro do outro. Pode ser uma boa ideia usar o else if no lugar para simplificar a leitura:
public class TesteIR {
public static void main(String[] args) {
double salario = 3300.0;
if (salario >= 1900.0 && salario <= 2800.0) {
System.out.println("Pode deduzir de IR até 7.5%");
System.out.println("valor de R$ 142,00");
} else if (salario >= 2800.01 && salario <= 3751.0) {
System.out.println("Pode deduzir de IR até 15%");
System.out.println("valor de R$ 350,00");
} else if (salario >= 3751.01 && salario <= 4664.00) {
System.out.println("Pode deduzir de IR até 22.5%");
System.out.println("valor de R$ 636,00");
}
}
}
Mas a lógica está correta sim. Continue assim! ;)
Se tiver qualquer dúvida, estou à disposição! Abraços!!