??講解視頻:可以在bilibili搜索《MATLAB教程新手入門篇——數學建模清風主講》。?
MATLAB教程新手入門篇(數學建模清風主講,適合零基礎同學觀看)_嗶哩嗶哩_bilibili
節選自?第4章:MATLAB程序流程控制
我們通過一個經典例題來理解if的嵌套,所謂if的嵌套,是指在if、elseif或者else下方的語句中又出現了if語句(一定要注意:每個if都要有配套的end)。
例題:已知a、b和c是三個互不相等的常數,請使用if語句找出a、b和c三個數的最大值。(注意,這里是練習條件語句,請不要使用max函數直接求最大值)
如果使用原來的思路,我們需要找到各種可能情況并進行多次判斷,流程圖和代碼如下:
?
注意:a>b且a>c涵蓋了表中前兩種排序的情況;c>b且c>a則涵蓋了表中第三種和第四種排序的情況;如果都不滿足則只剩下表中最后兩種排序的情況,此時最大值為b.
a = 5; b = 8; c = 3; % 隨便編一組數據測試
if a > b && a > cMax = a; % 不要命名為小寫的max,否則和內置函數重名了
elseif c > b && c > aMax = c;
elseMax = b;
end
Max
下面我們換一種思路,我們判斷的流程圖如下:
?
從上圖可以看出:我們首先判斷a和b的大小關系,然后根據第一次的判斷結果分別進行條件判斷,因此出現了嵌套的情況。根據上述流程圖可編寫下面的代碼:
if a>bif a>c % 此時a>b且a>cMax=a;else % 此時a>b且c>aMax=c;end % a>c前面的那個if配套的end,通過縮進可以看出
else % 此時a<bif b>c % 此時a<b且b>c Max=b;else % 此時a<b且b<c Max=c;end % b>c前面的那個if配套的end,通過縮進可以看出
end % 最上方的if配套的end
Max