{{htmlmetatags>metatag-robots=() metatag-title=(SELECT CASE...CASE...CASE ELSE...ENDSELECT | ugBASIC User Manual) metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum) metatag-description=(Pagina del manuale per SELECT CASE...CASE...CASE ELSE...ENDSELECT) metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png) metatag-og:title=(SELECT CASE...CASE...CASE ELSE...ENDSELECT | ugBASIC User Manual) metatag-og:description=(Pagina del manuale per SELECT CASE...CASE...CASE ELSE...ENDSELECT) }} ====== ugBASIC Manuale Utente ====== ===== SELECT CASE...CASE...CASE ELSE...ENDSELECT ✓ ===== ===== SINTASSI ===== SELECT CASE expression CASE value1: ... CASE value2: ... ... [ CASE ELSE ] ... ENDSELECT ==== SCOPO ==== Il comando ''SELECT CASE'' fa parte della struttura ''SELECT CASE...END SELECT''. Consente di eseguire diversi blocchi di codice a seconda del valore di una variabile o espressione. In pratica, è come avere una serie di "casi" e il programma esegue il codice corrispondente al caso che si verifica. L'espressione viene valutata all'inizio del blocco di controllo e il suo valore viene confrontato con i valori specificati nei casi. Ogni ''CASE'' rappresenta un possibile valore o un intervallo di valori dell'espressione. All'interno di ogni caso, inserisci le istruzioni che verranno eseguite se il valore dell'espressione corrisponde a quel caso. Il ''CASE ELSE'' è facoltativo e viene eseguito se nessun caso precedente è vero. Nei computer a 8 bit, la semantica di ''SELECT CASE'' è strettamente legata alla rappresentazione dei dati. Poiché registri e variabili erano spesso limitati a 8 bit, i valori che potevano essere confrontati in casi sono interi tra 0 e 255, anche se ugBASIC supporta qualsiasi tipo di intero. In ogni caso, consente di confrontare l'espressione con qualsiasi valore intero ma, a causa della limitazione a 8 bit, l'intervallo di valori che potevano essere confrontati dovrebbe essere limitato, per essere efficace, in termini di prestazioni. L'utilizzo di ''SELECT CASE'' rende il codice più chiaro e facile da capire rispetto a una serie di istruzioni ''IF...THEN...ELSE'' annidate. Può essere più efficiente di una serie di istruzioni ''IF...THEN...ELSE''. ==== ESEMPIO ==== SELECT CASE number CASE 1 PRINT "one!" CASE 2 PRINT "two!" CASE ELSE PRINT "neither!" ENDSELCT Si vedano anche i seguenti file di esempio: * ''[[https://github.com/spotlessmind1975/ugbasic/tree/main/examples/control_case_01.bas|control_case_01.bas]]'' ==== ABBREVIAZIONE ==== SlCsCsCsElEs ==== DISPONIBILE SU ==== * * Atari (400/800) * Atari XL/XE * Commodore 128 (MOS 8502) * Commodore 128 (Zilog Z80) * Commodore 64 * Commodore 64+REU * TRS-80 Color Computer * TRS-80 Color Computer 3 * ColecoVision * Amstrad CPC 664 * Dragon 32 * Dragon 64 * Thomson MO5 * Thomson MO5 * Olivetti Prodest PC128 * Commodore PLUS/4 * SEGA SC-3000 * SEGA SG-1000 * * VG-5000 * Commodore VIC-20 * ZX Spectrum 48 ==== VEDI ANCHE ==== [[CASE]] [[CASE ELSE]] [[ENDSELECT]] ==== PROBLEMI? ==== Se si riscontra un problema nell'utilizzare questo comando, se si ritiene che vi sia un bug oppure che la spiegazione sia poco chiara, è possibile [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=SEGNALAZIONE SU SELECT CASE...CASE...CASE ELSE...ENDSELECT|aprire una segnalazione]] per questa parola chiave su GitHub. Grazie!===== POWERED BY ===== [[:it:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]