Esiste un nome per il costrutto "break n"?

2

In una conversazione all'inizio di questa settimana stavo discutendo di alcune caratteristiche linguistiche e mi sono reso conto che non ho una buona parola / frase per descrivere una particolare caratteristica.

Alcune lingue, come PHP, hanno un costrutto linguistico che consente break e continue istruzioni per accettare un parametro numerico che indica quale blocco deve essere interessato. Ad esempio:

for ($i = 0; $i < 10; $i++)
    for ($j = 10; $j > 0; $j--)
        if ($j == $i) 
            break 2;
echo $i;

Poiché break 2; provoca l'interruzione del ciclo esterno, l'output è 1 . Se questo fosse break 1; o solo break; l'output sarebbe 10 .

C # non ha alcun costrutto simile. L'equivalente sarebbe qualcosa di simile a questo:

for (i = 0; i < 10; i++) {
    bool broken = false;
    for (j = 10; j > 0; j--) {
        if (j == i) {
            broken = true;
            break;
        }
    }
    if (broken)
        break;
}
Console.WriteLine(i);

Ma ovviamente, questo può essere ottenuto anche usando goto .

Quindi la mia domanda è, come la chiami? Esiste un nome specifico per questo costrutto "break n "? Mi piacerebbe poter dire " Lingua X ha un'interruzione parametrica e continue istruzioni ", o qualcosa del genere.

    
posta p.s.w.g 06.02.2014 - 21:22
fonte

1 risposta

2

Java ha questo e viene chiamato un "break etichettato" da quello che ho visto.

Da Tutorial Java sulle istruzioni di ramificazione di Oracle

:

The break statement has two forms: labeled and unlabeled. ... An unlabeled break statement terminates the innermost switch, for, while, or do-while statement, but a labeled break terminates an outer statement.

Nel tuo esempio PHP non è realmente "etichettato" per sé (anche se potresti considerare 2 un'etichetta implicita) ma più come una "relativa" o "annidata". Qualcuno di quegli aggettivi dovrebbe funzionare.

PS - Sono sorpreso che C # non l'abbia rubato da Java visto che hanno preso quasi tutto il resto.

    
risposta data 14.02.2014 - 15:17
fonte