basically do while choice isn't "q" or "Q"... loop loop loop loop loop q stop...
choice = in.next(); means you are changing the values in "choice"... to the values in.next() points too....
while(choice!="q" || choice!="Q"){
This will ALWAYS be true. You want &&
in.next() will return the next token in the input stream. A token is like a word (but can include any characters except whitespace), so, basically, it's everything until the next space or until the end of the line.
But the input is buffered, which means the user has to hit enter after the q or Q.
while(choice!="q" || choice!="Q"){
System.out.println("Please enter a command.");
choice = in.next();
what does "choice!=q ||choice!=Q" mean
and "choice = in.next();