В интересах будущих читателей и моего собственного здравомыслия позже я хотел бы абсолютно четко заявить, что switch
заявления, которые не имеют случая default
(из-за всех закрытых случаев) или последовательный if-elseif-else
с последним, который ничего не должен делать, не следует опускать и включать комментарий к этому вопросу (см. пример).C++: оператор switch отсутствует точка с запятой перед закрывающей скобкой
Однако всякий раз, когда я включаю default
дело в switch
заявление и оставить его пустым, я должен поставить точку с запятой внутри default
случая или ошибки компилятора: "Line [Линия закрытия скобки переключателя заявления]` отсутствующего „;“ до '}' ". ПОЧЕМУ ?!
Пример: ГЕНЕРИРУЕТ Ошибка компилятора
switch(direction) {
case MOVE_UP:
//...
break;
case MOVE_RIGHT:
//...
break;
case MOVE_DOWN:
//...
break;
case MOVE_LEFT:
//...
break;
default:
/* DO NOTHING */
}
Пример: НЕ СОЗДАТЬ Ошибка компилятора
switch(direction) {
case MOVE_UP:
//...
break;
case MOVE_RIGHT:
//...
break;
case MOVE_DOWN:
//...
break;
case MOVE_LEFT:
//...
break;
default:
/* DO NOTHING */;
}
FYI случай по умолчанию является необязательным в C++ ... – AJG85
Если вы хотите быть последовательным, поместите «break;» после значения по умолчанию. –