Looping pq meu segundo for nao funciona?

import java.util.;
class Main {
/

  • Exercicio 4) Escrever um programa que recebe dois números (n1, n2), calcula e
  • retorna a
  • quantidade de números inteiros ímpares que existem entre n1 e n2 (inclusive
  • ambos, se for o caso). O método deve funcionar inclusive se o valor de n2 for
  • menor
  • que n1.
    */
    public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

int cont_impar = 0;

System.out.println("informe um numero: ");
int n1 = sc.nextInt();
System.out.println("informe outro número ");
int n2= sc.nextInt();

for(n1 =0; n1<=n2; n1++){
if (n1 % 2 != 0) {
cont_impar++;
}
}
for(n2 =0; n2<= n1;n2++){
if(n2 % 2 !=0){
cont_impar++;
}
}
System.out.println(" numeros impar "+cont_impar);

sc.close();

}
}

Você só precisa de um for, e não faz sentido inicializar n1 ou n2 com 0, basta fazer um for de n1 até n2, e caso n2 seja menor que n1 troque os valores de posição antes do for.

Você reinicializou o n2 para zero.

exemplo:
Vamos dizer que o usuário entre os seguintes números.

n1 = 1
n2 = 10

faz o primeiro FOR, porém, você faz n1 virar 0.

for(n1 =0; n1<=n2; n1++){

então executa um FOR de 0 até 10. No final n1 fica igual a 10.

o segundo FOR, você faz o n2 virar 0.

for(n2 =0; n2<= n1;n2++){

então executa outra FOR de 0 até 10.

porém, se fizer o contrário.

n1 = 10
n2 = 1

faz o primeiro FOR de 0 até 1, pois você faz o n1 virar 0. no final desse FOR n1 fica igual a 1.
no próximo FOR o n2 vira zero e só vai até 1 também.

Possível solução.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int totalDeNumerosImpares = 0;
        int primeiroNumero , segundoNumero, variavelAuxiliar;

        System.out.print("informe um numero: ");
        primeiroNumero = sc.nextInt();

        System.out.print("informe outro número ");
        segundoNumero = sc.nextInt();

        // Se o primeiro for maior que o segundo, inverte os valores das variáveis.
        if (primeiroNumero > segundoNumero)
        {
            variavelAuxiliar = primeiroNumero;
            primeiroNumero = segundoNumero;
            segundoNumero = variavelAuxiliar;
        }

        // For do valor do primeiro número até o valor do segundo número. 
        for(int i = primeiroNumero; i <= segundoNumero; i++)
        {
            if (i % 2 != 0) {
                totalDeNumerosImpares++;
            }
        }

        System.out.println("Quantidade de números ímpares: " + totalDeNumerosImpares);

        sc.close();
    }
}