`${var:-x}` means "if var is unset or empty, replace it with x". As such it depends on what you mean by "mak[ing] a loop".
If you make a loop by splitting on `$IFS`, then yes, you can use this to create a variable for a loop. However, if that's what you want to do, I'd recommend using a ksh array instead:
if [ "$#" -eq 0 ]; then
set -A sta blabla blabla2 blabla3 # ksh88/pdksh/mksh/ksh93
sta=(blabla blabla2 blabla3) # ksh93/mksh
else
sta=("$@") # use the positional parameters if provided
fi
for x in "${sta[@]}"; do [...]