switch fall-through per l'esecuzione di una sequenza di passaggi

8

Il mio programma deve eseguire una sequenza di passaggi dall'inizio alla fine. Tuttavia, in base a input diversi, il punto iniziale varierà, ad esempio alcuni correranno dal primo passo alla fine, altri dal 2 ° alla fine, altri dal 3 ° alla fine, ecc.

Ho solo bisogno di un design semplice, attualmente utilizzo switch fall-through come questo:

switch (step) {
case 1:
     //do the 1st step
     //fall through, so no break here
case 2:
    //do the 2nd step
    //fall through
case 3:
    //do the 3rd step
    //fall through
...
}

Funziona ma la caduta attraverso il codice mi mette sempre a disagio. C'è un modo migliore e più semplice per farlo?

    
posta Qiulang 21.11.2018 - 15:03
fonte

2 risposte

4

A seconda della lingua che si sta utilizzando, è possibile creare una serie di funzioni e utilizzare step come punto di partenza per il looping su di esse. Qualcosa come:

var functions = function[]
{
    step1,
    step2,
    step3,
    …
}

foreach (var index = step-1; index <= function.count; index++)
{
    functions[index]();
}
    
risposta data 21.11.2018 - 15:21
fonte
4

Il modo in cui lo stai facendo è perfettamente buono e semplice; in primo luogo è ciò che è successo. Se ti rende più comodo, puoi aggiungere un commento che spiega cosa stai facendo (in modo che qualcun altro non impieghi mezz'ora per capire perché è così).

    
risposta data 29.11.2018 - 14:18
fonte