Lezione 2: Riepilogo post-progetto
Il blocco [If then else] viene utilizzato in modo che il robot VR possa prendere una decisione. Se la condizione booleana è VERA, verranno eseguiti i blocchi all'interno del ramo "If Then". Se la condizione booleana è FALSA, verranno eseguiti i blocchi all'interno del ramo "Else".

In questo progetto, il robot VR si è diretto verso un edificio quando il sensore di distanza ha rilevato un oggetto e il <Distance found object> blocco è stato segnalato come VERO. Questo ha incaricato il ramo "If Then" del progetto di essere eseguito. Questo ramo include il blocco [Drive]. Il robot VR salta quindi il ramo "Else" del progetto.

Poiché il blocco [If then else] è posizionato all'interno di un blocco [Forever], il progetto torna in cima al blocco [Forever] per verificare le condizioni del blocco [If else else]. Questo ciclo continuerà per sempre, istruendo il robot VR a controllare continuamente la condizione [If then else] centinaia di volte al secondo.
Si noti che i blocchi [Drive] e [Turn] all'interno del blocco [If then else] sono blocchi non in attesa. I blocchi non in attesa non fermano il flusso di un progetto mentre sono in esecuzione. Un comportamento di non attesa che viene eseguito in un blocco [If then else] (come l'unità in avanti se viene rilevato un oggetto) continuerà mentre la condizione viene verificata e cambierà solo quando la condizione cambia.

Se il <Distance found object> blocco viene segnalato come FALSO, viene eseguito il ramo "Else" del progetto. Il ramo "Else" include il blocco [Turn].

Per tua informazione
I blocchi [If then else] vengono utilizzati per garantire che venga eseguito un solo ramo nel progetto quando viene verificata la condizione. Solo un'istanza o una condizione può essere vera in qualsiasi momento. Questo rende il progetto più efficiente.

Confrontare il progetto corrente con il progetto creato nell'Unità 7. Il progetto dell'Unità 7 utilizza quattro blocchi [If then].

Quando si esegue un progetto con più blocchi [If then], è possibile che più condizioni riportino TRUE e che il progetto esegua i comandi nel blocco [Forever]. In questo progetto, entrambe le condizioni possono risultare VERE durante lo stesso ciclo [Forever]. Conflitti come questo potrebbero far sì che il progetto smetta di funzionare o corra più lentamente.

L'utilizzo di un blocco [If then else] eviterebbe bug come questo perché solo una condizione può essere VERA in un dato momento con questo blocco.
