Matlab开关/ case中的空语句?

时间:2017-01-23 18:00:55

标签: matlab switch-statement

我正在阅读this代码,在第97行,我找到了以下代码:

switch lower(opts.color)
  case 'rgb'
  case 'opponent'
  ...

我从未见过空洞的陈述(根据documentation)。这是什么意思?

"如果lower(opts.color)rgbopponent,那么..."

"如果lower(opts.color) rgb无效,且opponent..."?

1 个答案:

答案 0 :(得分:8)

如果case块为空,则不会对该特定情况执行任何操作。因此,如果opt.colors'rgb',则不会采取任何措施。

作者甚至不愿将其包含为case的原因是因为如果他们没有,那么otherwise块中的代码(将opts.color设置为{{}因为'hsv'opt.colors,这显然是不合需要的行为,所以会执行1}}因为提供的颜色空间无法识别/有效。

该块功能相当于

'rgb'

匹配多个值的if ~strcmpi(opts.color, 'rgb') switch lower(opts.color) case 'opponent' % Do stuff case 'hsv' % Do other stuff otherwise % Throw warning end end 块的语法需要使用cell array for the case expression

case