extracting multuiple tar files with while and read

Is anyone out there? I'm trying to run a script i wrote that extracts multiple .tar files in succession by pasting it into standard input. It does extract them all but I cant get it to stop looping and when I hit enter I get a tar command error like its still looking for files to extract.
ie;

tar: tarfile must be specified with 'f' function modifier
Usage: tar {c|r|t|u|x}[BDeEFhilmnopPqvw@[0-7]][bfk][X...] [blocksize] [tarfile]  [exclude-file...] {file | -I include-file | -C directory file}...

Cntrol C gets me out of the script to command prompt but I want it to do it automatically after the read is complete.

#!/bin/ksh
print "Enter the tar file(s)you'd like to extract:"
while
read tarflnm; do tar xvf $tarflnm; done

Ive tried:
exit, break, done, return; and all else that I know to do. Ive tried ksh bash and sh, even attempted a pretty sorry perl script. HELP!
:wall:

#!/bin/ksh
print "Enter the tar file(s)you'd like to extract:"
while read tarflnm
do 
   [[ -z "$tarflnm" ]] && exit
   tar xvf $tarflnm 
done

Two words....:DYOU ROCK!!!!:b:
thanks.

Whats the -z and double brackets do? (besides fix my broken script?)lol