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();
}
}