Pode dar mais detalhes do que você esta tentando fazer? porque você esta transformando todos os parâmetros que você recebe para letra maiúscula quando usa o método toUpperCase(), assim qualquer parâmetro vai ser armazenado nas variáveis P1,P2,P3,P4,P5 com letra maiúscula, já que você esta fazendo isso, todo valor passado com caractere minusculo vai ser convertido para maiúsculo, então não fez muito sentido pra mim,o que você precisa que é receber apenas caracteres minúsculos.
Bem. Quero “encurtar” isso: String P1 = scan.next(); e isso: P1 = P1.toUpperCase();
Talvez haja uma forma de juntar numa linha.
Outra coisa: Tem como limitar a resposta a 1 carácter (usei String) para receber a resposta mas e se o usuário resolver ESCREVER o "S I M ou o N Ã O ao invés de “S” ou “N”.
Crie um método à parte que já faça a leitura e retorne o resultado em maiúsculo. Para pegar a primeira letra, pode usar charAt, que retorna um char, e converter novamente para String. Algo como: