Dúvida em if/else

Preciso de ajuda com essa questão

4)O programa deve resolver o seguinte problema:
Em uma escola um aluno precisa obter a media 6 nas 2 primeiras notas para passar de ano. Caso a
media das notas seja inferior a 6 ele terá que fazer a recuperação e obter os pontos restantes para
passar. A regra é a seguinte:
MEDIA = ( NOTA1 + NOTA2 ) / 2;
MEDIA >= 6 : PASSOU
MEDIA < 6 : FAZ RECUPERACAO
MEDIA = NOTA1 + NOTA2 + RECUPERACAO
MEDIA >= 6 : PASSOU
MEDIA < 6 : REPROVADO

só posso usar a estrutura de condição if/else
eu fiz esse programa, porém mesmo que a média tenha sido acima de 6, aparece para colocar a nota de recuperação no console

segue o programa abaixo:

package quarta;

import java.util.Scanner;

public class Quarta {

public static void main(String[] args) {
    Scanner p = new Scanner(System.in);
    System.out.println("Qual a primeira nota?");
    double n1 = p.nextDouble();
    System.out.println("Qual a segunda nota?");
    double n2 = p.nextDouble();
    double m = ((n1 + n2) / 2);
    if (m >=6) {
        System.out.println("O aluno passou de ano.");
    } else {
        System.out.println("O aluno vai ter que fazer recuperação.");
    }
    Scanner a = new Scanner(System.in);
    System.out.println("Qual a nota de recuperação?");
    double r = a.nextDouble();
    double mr = (n1 + n2 + r);
    if (mr >= 6) {
        System.out.println("O aluno passou!");
    } else if (mr < 6) {
        System.out.println("O aluno reprovou!");
    }

}

}

Ficaria assim:

public static void main(String[] args) {
    Scanner p = new Scanner(System.in);
    System.out.println("Qual a primeira nota?");
    double nota1 = p.nextDouble();
    System.out.println("Qual a segunda nota?");
    double nota2 = p.nextDouble();
    double media = ((nota1 + nota2) / 2);
    if (media >=6) {
        System.out.println("O aluno passou por média.");
    } else {
        System.out.println("O aluno vai ter que fazer recuperação.");
        Scanner a = new Scanner(System.in);
	    
        System.out.println("Qual a nota de recuperação?");
	    double notaRecuparacao = a.nextDouble();
	    double mediaRecuperacao = ((nota1 + nota2 + notaRecuparacao)/3);
	    if (mediaRecuperacao >= 6) {
	        System.out.println("O aluno passou após fazer a recuperação!");
	    } else {
	        System.out.println("O aluno reprovou!");
	    }
    }
}

A condição de recuperação só é verdadeira se a media for menor que 6, então, a recuperação só existirá se o fluxo entrar no ELSE, contudo, você esqueceu de dividir as notas por 3
double mediaRecuperacao = ((nota1 + nota2 + notaRecuparacao)/3);

Mas está no caminho certo.
Conselho: Procura dar nomes as tuas variáveis. Ex: (n1 = nota1; m = media), com isso o código ficará bem legível,

Funcionou.
Obrigado pela ajuda !