Ваше условие "если это не a или не b", это означает, что оно всегда будет истинным, даже если это a или b. То, что вы хотите проверить это «если это не (а или б)» так:
if (! (userDecision == 'Y' || userDecision == 'y' || userDecision == 'n' || userDecision == 'N')) {
System.out.println("Error: invalid input entered for the interstate question");
System.exit(0);
}
Если ваш код содержит такие условия, которые становятся такими же длинными, как и многие альтернативные символы, для которых необходимо протестировать, вы можете использовать конструкцию switch, которая облегчает выполнение этого случая:
switch (userDecision) {
case 'y': /*fallthrough*/
case 'Y':
// accepted
break;
case 'n': /*fallthrough*/
case 'N':
// rejected
break;
default:
System.out.println("Error: invalid input entered for the interstate question");
System.exit(0);
}