Because after the nextInt() method pulls the value from the keyboard buffer, it leaves the newline character that was entered. So when you use the nextLine() method next, it reads in the newline character and stops like its suppose to.
Unlike other Scanner methods, nextLine() doesn't ignore the first newline character. You could just write a statement like this:
to consume the newline character and then proceed to read in the user's string