Questão java Complicadinha

Faça um programa que exiba um menu ao usuário e peça qual lanche ele deseja, caso seja digitado um número que não exista no menu exiba uma mensagem de erro. Preço dos lanches: Preços:X-Bacon - Preço: R$ 25 | X-Salada - Preço: R$ 14 || X-Picanha - Preço: R$ 24 || X-Tudo - Preço: R$ 40
Menu a ser exibido: 1- X-Bacon 2- X-Salada 3- X-Picanha 4- X-Tudo

O cliente sempre deverá escolher dois tipos de sanduíche. Se o usuário digitar algum número de algum sanduíche que não exista o programa deverá apresentar a mensagem “Esse sanduíche não existe no cardápio”. Caso os sanduíche exista é para o sistema apresentar na tela o nome de cada sanduíche e o valor total da compra.
Não estou conseguindo colocar o cliente para escolher dois tipos de sanduíche, e como faço para somar o valor total dos dois sanduíches pedidos com o nome de cada um, estou com muita dúvida…

public class Menu {

public static void main(String[] args) {

        Scanner menu = new Scanner (System.in);
    int i;

        for(i=1;i<=2;i++) {         

        System.out.print("--Cardapio--\n\n");
        System.out.print("|-----------------------------|\n");
        System.out.print("| Opção 1 - Preços:X-Bacon - Preço: R$ 20 |\n");
        System.out.print("| Opção 2 - X-Salada - Preço: R$ 1        |\n");
        System.out.print("| Opção 3 - X-Picanha - Preço: R$ 22      |\n");
        System.out.print("| Opção 4 - X-Tudo - Preço: R$ 30         |\n");
        System.out.print("|-----------------------------|\n");
        System.out.print("Digite uma opção: ");
        }
        int opcao = menu.nextInt();

        switch (opcao) {
        case 1 :
            
            System.out.println("\nX-Bacon - Preço: R$ 20");
            break;

        case 2:
            System.out.println("\nX-Salada - Preço: R$ 1\n");
            break;

        case 3:
            System.out.println("\nX-Picanha - Preço: R$ 22 \n");
            break;
            
        case 4:
            System.out.println("\nX-Tudo - Preço: R$ 30 \n");
            break;

        default:
            System.out.println("\nEsse sanduíche não existe no cardápio !");
            break;
    }
}

}

Pedir respostas de questões aqui vai te levar a respostas não muito agradáveis rs.

Mas…

float preco;
int repetir = 0;
while(repetir != 2){
switch (opcao) {
    case 1 :
        System.out.println("\nX-Bacon - Preço: R$ 20");
        preco = preco + 20.00; // mude o 20 para o valor do sanduíche.
        repetir++;
        break;
    }
}