Preciso de ajuda para resolver este código

Boa noite, estou com problemas para terminar este código, não estou conseguindo fazer com que quando digitar um valor diferente, o sistema se encerre e mostre o número de quartos ocupados.

Efetuar Reservas - Solicitar ao usuário que armazene reservas de números dos quartos, que vão de 101 até 104 e de 201 até 204, caso o usuário digite um valor diferente desses, o sistema encerra informando o número de quartos ocupados. Lembrando que será necessário armazenar a quantidade de dias e o valor da diária. Calcular o valor total da reserva de um quarto ao final do cadastro e mostrar em tela.

O código está assim por enquanto.

import java.util.Scanner;

public class Principal {

public static void main(String[] args) {

    Scanner ler = new Scanner(System.in);
    ListaDeReserva lr = new ListaDeReserva();
    int op;
    do {
        System.out.println("[1] - Efetuar Reserva");
        System.out.println("[2] - Excluir Lista de Reservas");
        System.out.println("[3] - Sair");
        op = ler.nextInt();

        switch (op) {
            case 1:
                Reserva r = new Reserva();

                System.out.println("Digite o nome do Hóspede: ");
                ler.nextLine();
                r.setNome(ler.nextLine());

                System.out.println("Digite o número do quarto: ");
                r.setNumeroQuarto(ler.nextInt());
                ler.nextLine();

                System.out.println("Digite a quatidade de diárias: ");
                r.setQuantidadeDias(ler.nextInt());
                ler.nextLine();

                System.out.println("Valor da diária: ");
                r.setValorDiaria(ler.nextFloat());

                System.out.println("Valor total da(s) diária(s): " + r.calcularTotal());

                lr.fazerReserva(r);

                break;

            case 2:
                if (lr.getListaReserva().isEmpty()) {
                    System.out.println("Não há reservas para excluir.");
                } else {
                    int confirma;
                    System.out.println("Tem certeza que deseja excluir tudo? \n[1] - SIM \n[2] - NÃO");
                    confirma = ler.nextInt();
                    if (confirma == 1) {
                        lr.excluirListaReserva();
                        System.out.println("Lista excluída com sucesso.");
                    } else {
                        System.out.println("Opção inválida!!");
                    }
                }

                lr.excluirListaReserva();

                break;

            case 3:
                System.out.println("Reserva(s) Finalizada!");
                break;
            default:
                System.out.println("ERRO!");
        }
    } while (op != 3);

    System.out.println(lr);
}

}

public class Reserva {

private String nome;
private int numeroQuarto;
private float valorDiaria;
private int quantidadeDias;

public Reserva() {

}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public int getNumeroQuarto() {
    return numeroQuarto;
}

public void setNumeroQuarto(int numeroQuarto) {
    if(numeroQuarto >= 101 && numeroQuarto <= 104 || numeroQuarto >= 201 && numeroQuarto <= 204){
        this.numeroQuarto = numeroQuarto;
    }else{
        System.out.println("Erro!");
    }
    

}

public float getValorDiaria() {
    return valorDiaria;
}

public void setValorDiaria(float valorDiaria) {
    this.valorDiaria = valorDiaria;
}

public int getQuantidadeDias() {
    return quantidadeDias;
}

public void setQuantidadeDias(int quantidadeDias) {
    this.quantidadeDias = quantidadeDias;
}

public double calcularTotal() {
    this.valorDiaria = this.valorDiaria * this.quantidadeDias;
    return valorDiaria;
}

@Override
public String toString() {
    return "\nReserva"
            + "\nNome do hóspede: " + nome
            + "\nNúmero do Quarto: " + numeroQuarto
            + "\nQuantidade de dias que ficou hospedado: " + quantidadeDias
            + "\nValor da(s) diária(s): " + valorDiaria
            + "\nValor total da(s) diária(s): " + calcularTotal();
}

}
import java.util.ArrayList;

public class ListaDeReserva {

private ArrayList<Reserva> ListaReserva;


public ListaDeReserva() {
    this.ListaReserva = new ArrayList<Reserva>();
}

public ArrayList<Reserva> getListaReserva() {
    return ListaReserva;
}

public void setListaReserva(ArrayList<Reserva> ListaReserva) {
    this.ListaReserva = ListaReserva;
}

public void fazerReserva(Reserva r) {
    this.ListaReserva.add(r);
    
}

public void excluirListaReserva(){
    this.ListaReserva.clear();
}

@Override
public String toString() {
    return "\nLista de Reservas" + ListaReserva;
}

}

só adiciona isso depois do laço:
System.out.println("Reservas: "+lr.getListaReserva().size());