Here is the code:
do {
System.out.println("Question #1:");
System.out.println("What is your budget for purchasing the laptop?");
System.out.println("A. >$500.00");
System.out.println("B. $500.00 - $700.00");
System.out.println("C. $700.00 - $1000.00");
System.out.println("D. <$1000.00");
questionArray [0] = myScanner.nextLine();
if (!questionArray [0].equals ("A") || !questionArray [0].equals ("B") || !questionArray [0].equals ("C") || !questionArray [0].equals ("D")) {
System.out.println("Invalid Entry");
}
} while (!questionArray [0].equals ("A") || !questionArray [0].equals ("B") || !questionArray [0].equals ("C") || !!questionArray [0].equals ("D"));
Basically, even when I write a valid response (eg. "A") it still counts it as an invalid answer, and restarts the question. Any help would be greatly appreciated! :)
When the condition gets complex, it is a good idea to try and simplify the complexity by using variables to make code cleaner and easier to understand. For example:
boolean validCondition = false;
do {
System.out.println("Question #1:");
System.out.println("What is your budget for purchasing the laptop?");
System.out.println("A. >$500.00");
System.out.println("B. $500.00 - $700.00");
System.out.println("C. $700.00 - $1000.00");
System.out.println("D. <$1000.00");
questionArray[0] = myScanner.nextLine();
validCondition = questionArray[0].equals("A") || questionArray[0].equals("B") || questionArray[0].equals("C")
|| questionArray[0].equals("D");
if (!validCondition) {
System.out.println("Invalid Entry");
}
} while (!validCondition);