Função para não computar informação incorreta e disparar mensagem de erro

Saudações,

Tenho um exercício onde preciso fazer uma programação para controlar quantidade de um item específico, informar qual defeito (são 4 defeitos apenas) que ele tem, e por fim emitir um relatório com percentual. Fiz o exercício com sucesso, porém gostaria de ir além. Notei que tem uma falha no programa no momento que informo o defeito (lembrando que só existe 4 defeitos pre cadastrados). Se eu informo ao sistema um valor que não seja o 1, 2, 3 ou 4, ele computa a informação do contador final (que seria o quantitativo de itens verificados).

A minha ideia é se o usuário preencher um numero que não seja 1, 2, 3 e 4, disparar uma mensagem de erro e anularia a checagem, porém estou com problemas para anular o contador quando digito qualquer numero que não seja 1,2,3 e 4.

A mensagem eu consegui com Else, porém não estou conseguindo anular para não computar.

Alguém pode me ajudar? Desde já agradeço.

package secao07;

import java.util.Scanner;

public class Exercicio07 {
  
  public static void main(String[] args) {
    // Variaveis
    int contador_total = 0, contador_sit_1 = 0, contador_sit_2 = 0, contador_sit_3 = 0, contador_sit_4 = 0, identificacao, defeito = 0;
    
    //Entrada
    Scanner input = new Scanner(System.in);
    
    System.out.println("Informe a identificação");
    identificacao = input.nextInt();
    
    while(identificacao != 0) {
      System.out.println("1 - Necessita de esfera.");
      System.out.println("2 - Necessita de limpeza.");
      System.out.println("3 - Necessita de troca de cabo ou conector.");
      System.out.println("4 - Quebrado ou inutilizado.");
      
      System.out.println("Informe o defeito.");
      defeito = input.nextInt();
      
      // Processamento
      if (defeito >= 1 && defeito <= 4) {
        if (defeito == 1) {
          contador_sit_1 = contador_sit_1 + 1;
        }

        if (defeito == 2) {
          contador_sit_2 = contador_sit_2 + 1;
        }

        if (defeito == 3) {
          contador_sit_3 = contador_sit_3 + 1;
        }

        if (defeito == 4) {
          contador_sit_4 = contador_sit_4 + 1;
        }
      } else {
        System.out.println("No campo defeito, deve preencher de 1 à 4.");
      }
      
      contador_total = contador_total + 1;
      System.out.println("Informe a identificação");
      identificacao = input.nextInt();
    }

    float porcentagem1, porcentagem2, porcentagem3, porcentagem4;
    
    porcentagem1 = ((float)contador_sit_1 / contador_total) * (float)100;
    porcentagem2 = ((float)contador_sit_2 / contador_total) * (float)100;
    porcentagem3 = ((float)contador_sit_3 / contador_total) * (float)100;
    porcentagem4 = ((float)contador_sit_4 / contador_total) * (float)100;
        
    System.out.printf("Quantidade de mouses %d\n", contador_total);
    System.out.printf("Situação \t\t\t\t\tQuantidade \tPercentual\n");
    System.out.printf("1 - Necessita de esfera \t\t\t %d \t\t%.2f%%\n", contador_sit_1, porcentagem1);
    System.out.printf("2 - Necessita de limpeza \t\t\t %d \t\t%.2f%%\n", contador_sit_2, porcentagem2);
    System.out.printf("3 - Necessita de troca de cabo ou conector \t %d \t\t%.2f%%\n", contador_sit_3, porcentagem3);
    System.out.printf("4 - Quebrado ou inutilizado \t\t\t %d \t\t%.2f%%", contador_sit_4, porcentagem4);
    
    input.close();
  }
}

Acredito que essa soma deveria está dentro do IF que verifica se está entre 1 e 4 (logo após os 4 IFs dos defeitos). Com isso, o quantitativo apenas será incrementado se a regra dos defeitos for verificada.