Exception in thread "main" java.util.InputMismatchException inserção de um inteiro em uma classe

Fala pessoal, estou fazendo um trabalho da faculdade que consiste em aplicar um programa de uma locadora, seque o código:

import java.util.Scanner;
public class Main {
public static void main(String[] args) {

	int limiteclientes = 1000;
	int limitefuncionarios = 10;
	int limitefilmes = 5000;
	int i=1;
	Cliente[] cliente = new Cliente[limiteclientes];
	Funcionario[] funcionario = new Funcionario[limitefuncionarios];
	Filme[] filme = new Filme[limitefilmes];
	
	Scanner scan = new Scanner(System.in);
	int opcao,opcao1,opcao2,opcao3,j,k;
	
	do{
        System.out.println("---------------------------"); //menu principal
        System.out.println("Digite o número da opção:");
        System.out.println("1. Cliente");
        System.out.println("2. Filme");
        System.out.println("3. Funcionario");
        System.out.println("0. Sair do programa");
        System.out.println("---------------------------\n"); 	        
        opcao = scan.nextInt();
        switch(opcao){
            case 1:
            	do {
            		System.out.println("-----------------------------");
            		System.out.println("1. Cadastrar cliente");
            		System.out.println("2. Excluir cadastro");
            		System.out.println("3. Alterar cadastro");
            		System.out.println("4. Alugar filme");
            		System.out.println("5. Exibir cadastros");
            		System.out.println("0. Voltar ao menu principal");
            		System.out.println("-----------------------------\n");
            		opcao1 = scan.nextInt();
            		if (opcao1 == 1) {
            			cliente[i] = new Cliente();
            			System.out.print("Insira o nome do cliente: ");
            			cliente[i].setNome(scan.next());
            			System.out.print("\nInsira o CPF do cliente: ");
            			cliente[i].setCpf(scan.next());
            			System.out.print("\nInsira o endereço do cliente: ");
            			cliente[i].setEndereco(scan.next());
            			System.out.print("\nInsira a idade do cliente: ");
            			cliente[i].setIdade(scan.nextInt());
            			System.out.print("\nO código do cliente: " + cliente[i].getNome() + "é: " + i);
            			i++;
            		} else if (opcao1 == 2) {

ao testar o código, na hora de inserir uma idade, o seguinte erro aparece

Exception in thread “main” java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Main.main(Main.java:47)

O método nextInt() não consome o caractere \n.
Então, para ler um inteiro, utilize Integer.parseInt(scan.nextLine()).