é o seguinte:
Eu fiz um código para a faculdade em uma atividade e ele está rodando ok. Porem em várias entradas eu tenho que digitar as letras s para sim ou n para não a fim de computar os pontos, porem se digito outra letra ou caracter qualquer ele retorna null e segue a execução. Como trato esta excessão de forma que se for digitada qualquer outro caracter para as perguntas ele informe que o caracter digitado não é válido apenas o s para sim e o n para não.
Segue o código para que possa alguém me ajudar pelo amor de cristo !!!:
tem duas classes apenas:
classe cadastro:
package mapa_ps_a1;
import javax.swing.JOptionPane;
/**
*
* @author Sidney L. Rodrigues
* R.A. 1942716-5
*/
public class Cadastro {
private String cpf;
private String nome;
private String sexo;
private String idade;
private String febre;
private String dorDeCab;
private String secNaEsp;
private String dorIrrit;
private String tosSec;
private String difResp;
private String dorCorpo;
private String diarreia;
private String contato;
private String locais;
public int getSoma() {
int soma = 0;
if ("s".equalsIgnoreCase(febre)
|| "sim".equalsIgnoreCase(febre)) {
soma = soma + 5;
}
if ("s".equalsIgnoreCase(dorDeCab)
|| "sim".equalsIgnoreCase(dorDeCab)) {
soma = soma + 1;
}
if ("s".equalsIgnoreCase(secNaEsp)
|| "sim".equalsIgnoreCase(secNaEsp)) {
soma = soma + 1;
}
if ("s".equalsIgnoreCase(dorIrrit)
|| "sim".equalsIgnoreCase(dorIrrit)) {
soma = soma + 1;
}
if ("s".equalsIgnoreCase(tosSec)
|| "sim".equalsIgnoreCase(tosSec)) {
soma = soma + 3;
}
if ("s".equalsIgnoreCase(difResp)
|| "sim".equalsIgnoreCase(difResp)) {
soma = soma + 10;
}
if ("s".equalsIgnoreCase(dorCorpo)
|| "sim".equalsIgnoreCase(dorCorpo)) {
soma = soma + 1;
}
if ("s".equalsIgnoreCase(diarreia)
|| "sim".equalsIgnoreCase(diarreia)) {
soma = soma + 1;
}
if ("s".equalsIgnoreCase(contato)
|| "sim".equalsIgnoreCase(contato)) {
soma = soma + 10;
}
if ("s".equalsIgnoreCase(locais)
|| "sim".equalsIgnoreCase(locais)) {
soma = soma + 3;
}
return soma;
}
public String getNome() {
return nome;
}
public String getCpf() {
return cpf;
}
public String getSexo() {
return sexo;
}
public String getIdade() {
return idade;
}
public String getFebre() {
return febre;
}
public String getDorDeCab() {
return dorDeCab;
}
public String getSecNaEsp() {
return secNaEsp;
}
public String getDorIrrit() {
return dorIrrit;
}
public String getTosSec() {
return tosSec;
}
public String getDifResp() {
return difResp;
}
public String getDorCorpo() {
return dorCorpo;
}
public String getDiarreia() {
return diarreia;
}
public String getContato() {
return contato;
}
public String getLocais() {
return locais;
}
public void setCpf(String cpf) {
if (!cpf.equalsIgnoreCase("sair")) {
this.cpf = cpf;
} else {
JOptionPane.showMessageDialog(null, "PROGRAMA ENCERRADO!");
System.exit(0);
}
}
public void setNome(String nome) {
this.nome = nome;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public void setIdade(String idade) {
this.idade = idade;
}
public void setFebre(String febre) {
this.febre = febre;
}
public void setDorCabeca(String dorDeCab) {
this.dorDeCab = dorDeCab;
}
public void setSecrNasEsp(String secNaEsp) {
this.secNaEsp = secNaEsp;
}
public void setDorIrritacao(String dorIrrit) {
this.dorIrrit = dorIrrit;
}
public void setTosseSeca(String tosSec) {
this.tosSec = tosSec;
}
public void setDifResp(String difResp) {
this.difResp = difResp;
}
public void setDoresCorpo(String dorCorpo) {
this.dorCorpo = dorCorpo;
}
public void setDiarreia(String diarreia) {
this.diarreia = diarreia;
}
public void setContato(String contato) {
this.contato = contato;
}
public void setLocais(String locais) {
this.locais = locais;
}
}
classe main:
package mapa_ps_a1;
/**
* @author Sidney L. Rodrigues
* R.A. 1942716-5
*/
import java.util.Scanner;
import javax.swing.JOptionPane;
public class MAPA_PS_A1 {
public static void main(String[] args) {
Cadastro cadastro = new Cadastro();
do {
String cpf = JOptionPane.showInputDialog("Digitar CPF para realizar cadastro ou \"Sair\" terminar o programa");
cadastro.setCpf(cpf);
String nome = JOptionPane.showInputDialog("Digite o seu nome");
cadastro.setNome(nome);
String sexo = JOptionPane.showInputDialog("Digite M para masculino ou F para feminino");
cadastro.setSexo(sexo);
String idade = JOptionPane.showInputDialog("Digite sua idade");
cadastro.setIdade(idade);
String febre = JOptionPane.showInputDialog("Tem febre? n/nao ou s/sim");
cadastro.setFebre(febre);
String dorCabeca = JOptionPane.showInputDialog("Tem dor de cabeça? n/nao ou s/sim");
cadastro.setDorCabeca(dorCabeca);
String secrNasEsp = JOptionPane.showInputDialog("Tem secreção nasal ou espirros? n/não ou s/sim");
cadastro.setSecrNasEsp(secrNasEsp);
String dorIrritacao = JOptionPane.showInputDialog("Tem dor/irritação na garganta? n/não ou s/sim");
cadastro.setDorIrritacao(dorIrritacao);
String tosseSeca = JOptionPane.showInputDialog("Tem tosse seca? n/não ou s/sim");
cadastro.setTosseSeca(tosseSeca);
String difResp = JOptionPane.showInputDialog("Tem dificuldade respiratória? n/não ou s/sim");
cadastro.setDifResp(difResp);
String doresCorpo = JOptionPane.showInputDialog("Tem dores no corpo? n/não ou s/sim");
cadastro.setDoresCorpo(doresCorpo);
String diarreia = JOptionPane.showInputDialog("Tem diarreia? n/não ou s/sim");
cadastro.setDiarreia(diarreia);
String contato = JOptionPane.showInputDialog("Esteve em contato, nos últimos 14 dias, com um caso diagnosticado com COVID-19? n/não ou s/sim");
cadastro.setContato(contato);
String locais = JOptionPane.showInputDialog("Esteve em locais com grande aglomeração? n/não ou s/sim");
cadastro.setLocais(locais);
System.out.println("Cpf: " + cadastro.getCpf());
System.out.println("Nome: " + cadastro.getNome());
System.out.println("Sexo: " + cadastro.getSexo());
System.out.println("Idade: " + cadastro.getIdade());
Scanner entrada = new Scanner(System.in);
System.out.println("Digite S ou N:");
String letra = entrada.nextLine();
switch (letra) {
case "s or n" -> {
System.out.println("Febre: " + cadastro.getFebre());
System.out.println("Dor de cabeca: " + cadastro.getDorDeCab());
System.out.println("secreção nasas e espirros: " + cadastro.getSecNaEsp());
System.out.println("Dor irritacao: " + cadastro.getDorIrrit());
System.out.println("Tosse seca: " + cadastro.getTosSec());
System.out.println("Dificuldade respiratória: " + cadastro.getDifResp());
System.out.println("Dores no corpo: " + cadastro.getDorCorpo());
System.out.println("Diarreia: " + cadastro.getDiarreia());
System.out.println("Contato: " + cadastro.getContato());
System.out.println("Locais: " + cadastro.getLocais());
}
default -> System.out.println("Letra inválida");
}
System.out.println("A soma dos pontos é " + cadastro.getSoma());
int soma = cadastro.getSoma();
if (soma <= 9) {
System.out.println("O paciente deverá ser encaminhado para a ala de risco baixo");
} else if (soma >= 10 && soma <= 19) {
System.out.println("O paciente deverá ser encaminhado para a ala de risco médio");
} else {
System.out.println("O paciente deverá ser encaminhado para a ala de risco alto");
}
} while (!cadastro.equals("sair"));
}
}
Na linha 54 a 58 antes das perguntas tentei inserir um case mas não funciona roda o inicio mas o restante não aparece no console ou gera informação que o caracter não é válido.
Ancioso por alguem me ajudar a descascar esta resposta e eu possa aprender. obrigado antecipadamente a quem possa me socorrer