unfortunately, x will never be 3.0. The closest it gets is 2.99999928474. This is because floating point numbers are not always (in fact, more often than not) exactly what you set them to be. Look up floating point numbers on Wiki if you want the details.
replace your
print x
with
print str$(x)
and you'll see the real, non-rounded value.
The workaround to your issue would be
SET WINDOW ON
x as integer
x = 1
do
if x=30
wait key
endif
print (x / 10.0)
` or this for the non-rounded value:
print str$(x / 10.0)
print ""
x = x+1
loop
WAIT KEY