Welcome to the Ranch!
What probably happens is that the keyboard.nextDouble() call reads a number, but doesn't process the newline (enter) that you type after entering the number. So the next time the loop is iterated, the newline character will be read and the company name will be empty (keyboard.nextLine() reads the unprocessed newline character and interprets this as an empty line).
What you could do is not use keyboard.nextDouble() to read the numbers, but use keyboard.nextLine() to read a complete line, and then parse that into a Double by calling Double.parseDouble() on the line (
string) that was read.