Algorítimo para exibir os números pares entre dois números digitados em Java

eu estou começando na faculdade de programação e tenho que fazer um algorítimo para fazer oq vcs estão vendo ai no título, tenho que usar o as coisas que estão ai no código pq é oq estamos aprendendo. o problema é que quando eu digito o número, o algorítimo não está lendo o cálculo e dando a resposta, aparece somente o que está dentro do print. Como faço para resolver ?
esse é o código :

package avaliação7;

import java.util.Scanner;

public class Avaliação7 {

public static void main(String[] args) {

    Scanner s = new Scanner(System.in);
    
    int x,numero2, contador =1;
    
    System.out.println("Digite um número: ");
     x = s.nextInt();

    for (int i = 1; i <= x; i++) {
    if ( x % 2 == 0) {
        contador++;
        System.out.println("Os números pares entre " +x+ " são: ");
        
    }

                       
    }
    s.close();
    
}    

}

Está sim, mas o seu cálculo está errado, você sempre está comparando se x é par, mas o valor de x nunca muda.

Além do mais, o enunciado diz que você deveria ler 2 números e apresentar os pares entre eles, você só está lendo 1 número.

Você também tem duas variáveis que não está usando pra nada: numero2 e contador.
Dica: utilize nomes de variáveis legíveis, que significam aquilo que a variável representa.

Mas é assim que funciona, se você quer que algo apareça, deve colocar dentro do print.

Veja seu código refatorado:

import java.util.Scanner;

public class Avaliacao7 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Digite o número 1: ");
        int numero1 = Integer.parseInt(scanner.nextLine()); // ao ler do teclado, utilize somente o método nextLine()

        System.out.print("Digite o número 2: ");
        int numero2 = Integer.parseInt(scanner.nextLine()); // ao ler do teclado, utilize somente o método nextLine()

        System.out.print("Os números pares entre " + numero1 + " e " + numero2 + " são:");
        for (int numero = numero1; numero <= numero2; numero++) {
            if (numero % 2 == 0) {
                System.out.print(" " + numero);
            }
        }
        scanner.close();
    }
}

Exemplo de saída do programa:

Digite o número 1: 5
Digite o número 2: 39
Os números pares entre 5 e 39 são: 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38
2 curtidas

Complementando a resposta do @staroski acima, você não precisa fazer o for de 1 em 1 e testar todos os números para saber se são pares.

Basta testar se o primeiro número é par ou ímpar. Se ele for ímpar, some 1, assim você tem certeza que começa de um número par, e aí basta iterar de 2 em 2. Assim:

Scanner scanner = new Scanner(System.in);
System.out.print("Digite o número inicial: ");
int inicio = Integer.parseInt(scanner.nextLine());
System.out.print("Digite o número final: ");
int fim = Integer.parseInt(scanner.nextLine());

System.out.printf("Os números pares entre %d e %d são:", inicio, fim);
if (inicio % 2 != 0) { // se o número inicial é ímpar, adiciona 1
    inicio++; // assim, ele passa a ser par
}

// como agora eu sei que o início é par, posso iterar de 2 em 2, para ter somente números pares
for (int numero = inicio; numero <= fim; numero += 2) { // itero de 2 em 2
    System.out.printf(" %d", numero);
}

Já o número final não precisa fazer isso, pois o for irá parar corretamente, independente dele ser par ou ímpar.

Outro detalhe é que não precisa fechar o System.in (outros recursos são importantes de serem fechados, mas o System.in é “especial” e não precisa - veja aqui para mais detalhes).

Obrigado pela dica, e caso eu queria saber os números ímpar de 1 até um número digitado, como ficaria o algorítimo ?

É só trocar o primeiro if para garantir que comece por um número ímpar:

if (inicio % 2 == 0) { // se o número inicial é par, adiciona 1
    inicio++; // assim, ele passa a ser ímpar
}

Ou, se o início é sempre 1, aí é só fazer for (int numero = 1; numero <= fim; numero += 2) (e aí nem precisa do if acima).

O restante do código é igual.