2015-03-01 4 views
0

В C оператор каскадного переключателя может быть легко использован реализовать этот поток:Какой поток управления подходит «если A, а затем выполните a, если B, то сделайте a, b, если C, а затем выполните a, b, c ...»

switch (var) { 
    case c: C(); 
    case b: B(); 
    case a: A(); 
    default: // no op 
} 

Существуют ли альтернативы для поддержки этого потока на других языках программирования? Например. в Python, Java?

+2

Java имеет идентичную 'switch' заявление. Вы уже писали законную Java. –

+0

К сожалению ..... :-) –

+2

У меня этот вопрос не возникает. Это путь к широкому. Что определяет приемлемый ответ? Является ли игра придумыванием страницы розет-кодов, демонстрирующей этот простой фрагмент на как можно большем числе языков? – aioobe

ответ

1

Вы можете поддержать этот поток на любом языке, который имеет if заявление, и логический оператор ИЛИ (который будет все из них)

flow = 0; 

if (var == a) { 
    A(); 
    flow = 1; 
} 

if (flow || var == b) { 
    B(); 
    flow = 1; 
} 

if (flow || var == c) { 
    C(); 
    flow = 1; 
} 

// and so on 
Смежные вопросы