2015-11-04 2 views
0

У меня есть что-то вроде этогоВозможно ли выполнить два случая переключателя?

switch($m){ 
    case 1: 
     some code 
     break; 
    case 2: 
     some code 
     break; 
    case 3: 
     some code 
     break; 
} 

мне нужно что то случай 2 выполняется он будет вернуться назад и выполнить случай 1. или то случай 3 выполняет мне это нужно, чтобы вернуться и выполнить случай 1.

Можно ли это сделать? Спасибо!

+0

Почему бы не создавать функции для каждого случая, а затем называть их по мере необходимости –

+0

есть несколько хороших догадок ниже, но я уверен, что есть варианты даже не используют 'switch \ case' вообще. У нас просто недостаточно информации, чтобы дать хороший ответ на этот вопрос. –

+0

a (очень плохой вариант), предполагая, что вы используете c/C++, заключается в использовании операторов «label» и «goto». Но см. Комментарий @ Дагона. вы не должны * прыгать в инструкции switch, как это. refactor для использования if/else + вспомогательных функций, если это необходимо. – Xerion

ответ

0

Если я правильно понял, что-то, как это должно работать для вас:

function duck($m) 
{ 
    switch($m){ 
     case 1: 
      //some code 
      break; 
     case 2: 
      duck(1); 
      break; 
     case 3: 
      duck(1); 
      break; 
    } 
} 


duck(2); 

Удачи!

0

Это возможно, если вы установите его право:

switch($var){ 
    case 1: 
     some code 1; 
    case 2: 
     some code 2; 
     break; 
    case 3: 
     some code 3; 
    default 
     some code 4; 
     break; 
} 

В основном, он будет продолжать идти вниз поток переключателя сезам достигает перерыв. Таким образом, в этом примере case 2 выполнит код 2, но случай один будет выполнять первый код 1 THEN код 2, потому что нет разрыва. То же самое для случая 3 и по умолчанию: случай 3 ударил как с некоторым кодом 3, так и с некоторым кодом 4.