In effetti era troppa fatica controllare come erano state dichiarate le variabili
Si, giustamente deve essere quella ad essere stata arrotondata per eccesso (strano non abbia arrotondato per approssimazione invece).
Per il resto, ricorda che la variabile può essere valutata prima o dopo l'incremento, dipende da come è stato implementato il linguaggio e nello specifico il ciclo for.
L'importante è sapere come funziona, soprattutto se poi intendi usare il valore delle variabili all'esterno del ciclo (cosa abbastanza comune in C).
In questo caso il comportamento mi sembra comunque abbastanza "standard". Nel ciclo:
Codice:
For ty = 1 To 2
...
Next
Prima iterazione
- assegno il valore iniziale a ty [=1]
- verifico se il valore di ty [1] soddisfa la condizione finale (≤2) -> [OK]
- eseguo le istruzioni
- "torno su" (next)
Seconda iterazione
- incremento il valore [1+1=2] della variabile
- verifico se il valore di ty [2] soddisfa la condizione finale (≤2) -> [OK]
- eseguo le istruzioni
- "torno su" (next)
Terza iterazione
- incremento il valore [2+1=3] della variabile
- verifico se il valore di ty [2] soddisfa la condizione finale (≤2) -> [NO]
- esco dal ciclo e riprendo il flusso delle istruzioni
Alla fine della fiera quindi il valore di ty sarà 3, comportamento che mi pare corrispondente a quello ottenuto.
Oltretutto cerchi di fare un discorso basato su un funzionamento troppo a basso livello, che in questo caso trovo non sia affatto utile.