I am trying to get the "press q to quit" function to work properly, but I'm having some trouble. The "invalid Character" function is also not working properly. How would I go about fixing this? My professor suggested putting the "press q to quit" function in the beginning of my code, but hasn't given me any further instruction.
public static void main(String[] args) {
    char userChar = 0;
    Scanner sc = new Scanner(System.in);
    Random rnd = new Random();
    // Intro/directions/prompting for user input
    System.out.println("Welcome to Rock, Paper, Scissors by Rancid!");
    System.out.println("Choose R for Rock, P for Paper, S for Scissors, or Q to Quit, then press Enter: ");
    // If player chooses to quit
    if (userChar == 'q' || userChar == 'Q') {
        System.out.println("Player chose to quit. Goodbye!");
    }
    // Start of loop
    while (userChar != 'q' && userChar != 'Q') {
        // Prompting computer to generate a random number
        int randomNumber = rnd.nextInt(3) + 1;
        // If computer generates 1 (Rock)
        if (randomNumber == 1) {
            if (userChar == 'r' || userChar == 'R') {
                System.out.println("Rock vs. Rock! It's a tie!");
            } else if (userChar == 'p' || userChar == 'P') {
                System.out.println("Paper covers Rock, you win!");
            } else if (userChar == 's' || userChar == 'S') {
                System.out.println("Rock breaks Scissors, you lose!");
            }
        }
        // If computer generates 2 (Paper)
        else if (randomNumber == 2) {
            if (userChar == 'r' || userChar == 'R') {
                System.out.println("Paper covers Rock, you lose!");
            } else if (userChar == 'p' || userChar == 'P') {
                System.out.println("Paper vs. Paper! It's a tie!");
            } else if (userChar == 's' || userChar == 'S') {
                System.out.println("Scissors cuts Paper, you win!");
            }
        }
        // If computer generates 3 (Scissors)
        else if (randomNumber == 3) {
            if (userChar == 'r' || userChar == 'R') {
                System.out.println("Rock breaks Scissors, you win!");
            } else if (userChar == 'p' || userChar == 'P') {
                System.out.println("Scissors cuts Paper, you lose!");
            } else if (userChar == 's' || userChar == 'S') {
                System.out.println("Scissors vs. Scissors! It's a tie!");
            }
        }
        // If player types an invalid character
        else {
            System.out.println("Invalid input! Please enter a valid character.");
        }
        userChar = sc.next().charAt(0);
        }
    }
}
 
     
     
    