Переход к следующему обращению в коммутаторе, если условия не выполнены

#dart

#перейти

Вопрос:

У меня есть swtich с заявлениями:

 enum Fruit { mango, apple }

if (currentFruit) {
   case Fruit.mango:
     if (someCondition) {
       // do something
     } else {
       // Continue to next case <--
     }
     break;
   case Fruit.apple:
     if (someCondition) {
       // do something
     } else {
       // Continue to next case <--
     }
     break;
}
  

Как я могу перейти к следующему обращению, не прерывая коммутатор?

Когда я удаляю break инструкции, это выдает ошибку.

Ответ №1:

Вы можете создавать метки для каждого оператора и указывать, какой из них вы хотите продолжить:

 switch (currentFruit) {
mango: //This is a label
   case Fruit.mango:
     if (someCondition) {
       // do something
     } else {
       continue apple; // Switch to the "apple" case
     }
     break;
apple: //This is a label
   case Fruit.apple:
     if (someCondition) {
       // do something
     } else {
       continue mango;  // Switch to the "mango" case
     }
     break;
}