Need to understand a couple of Shell Logic

Hi,

I am trying what the following loop does :

for i in XYZ
do
	for j in M1 R1 R2 R3
	do
		if [ $j == "M1" ]
		then
			kList=""
			n=1
			while [ $n -le $num_m ]
			do
			 	kList="$kList $n"
			   	let n++
			done

There are a couple of loop as mentioned above for R1.R2.R3.

Also, would like to know what does following line means :

[ $# -lt 18 ]] && usage

JPrince

To understand for loop refer: Bash For Loop

To understand $# refer: Special Shell Variables