Octave 入門教程:if/switch/while/for/break/continue 語句

Octave 入門教程目錄,請點擊: https://blog.csdn.net/benzhujie1245com/article/details/83146777



  本內容將介紹 Octave 的控制語句(if/switch)和循環語句 (for/while/break/continue)的使用方法。
  如果您已經懂任何一門編程語言,只需要粗略閱讀即可,基本上就知道如何使用了。如果您不懂任何編程語言,建議詳細閱讀以下內容。

一、控制語句

  Octave 提供 if 和 switch 控制語句。

1.1 if 語句

1.1.1 if…end 語句

  在 Octave 中,if…end 語句的使用語法如下:

if <expression>
  <statements>
end

  如果表達式的計算結果是 true,將執行其中的語句;否則,不執行。
  在 Octave 中輸入以下代碼:

fprintf('Hello world !\n');

if false         % 表達式的值爲 false,不執行 if 和 end 之間的語句
  fprintf('my name is Octave.\n');
end

運行以上代碼,輸出以下內容:

Hello world !
1.1.2 if…else…end 語句

  在 Octave 中,if…end 語句的使用語法如下:

if <expression>
  <statements>
else
  <statements>
end

  如果表達式的計算結果是 true,將執行 if 和 else 之間的語句;否則,執行 else 和 end 之間的語句。
  在 Octave 中輸入以下代碼:

fprintf('Hello world !\n');

if true % 表達式的值爲 true,執行 if 和 else 之間的語句
  fprintf('my name is Octave.\n');
else
  fprintf('my name is Matlab.\n');
end

運行以上代碼,輸出以下內容:

Hello world !
My name is Octave.
1.1.3 if…elseif…else…end 語句

  在 Octave 中,if…end 語句的使用語法如下:

if <expression>
  <statements>
elseif
  <statements>
else
  <statements>
end

  最終只會執行其中的某一個語句。在實際使用中,中間可以存在多個 elseif,並且最後一個 else 是可選的。
  在 Octave 中輸入以下代碼:

fprintf('Hello world !\n');

a = 20;
if a == 10  % 表達式的值爲 false,跳轉到 elseif 語句進行判斷
  fprintf('my name is XXX\n');
elseif a == 20% 表達式的值爲 true,執行elseif和else之間的語句,執行完之後,跳轉到 end 之後
  fprintf('my name is Octave.\n');
else
  fprintf('my name is Matlab.\n');
end

運行以上代碼,輸出以下內容:

Hello world !
My name is Octave.
1.1.4 嵌套 if 語句

  在 Octave 中,if…end 語句的使用語法如下:

if <expression>
  if <expression>
    <statements>
  end
end

  在 Octave 中輸入以下代碼:

fprintf('Hello world !\n');

a = 10;
if a < 20
  if true
    fprintf('my name is Octave.\n');
  end
end

運行以上代碼,輸出以下內容:

Hello world !
My name is Octave.

1.2 switch 語句

  switch 語句有條件地執行一組語句,這組語句是從幾個選項裏選擇執行的,其中每個選項涵蓋了一個 case 語句。
  在 Octave 中,switch 語句的使用語法如下:

switch <switch_expression>
  case <case_expression>
    <statements>
  case <case_expression>
    <statements>
  ...
  ...
  otherwise
    <statements>
end

  當有一個 case 表達式爲 true 時,Octave 就執行與之對應的語句,並且不再執行其他語句,然後直接退出 switch 語句塊。其中, otherwise 語句塊是可選的,case 語句塊個數爲任意多個。
  注意:在 Octave 中其他 case 的關鍵字是 otherwise,和一般的編程語言的 default 不同。
  在 Octave 中輸入以下代碼:

fprintf('Hello world !\n');

name = 'Octave';
switch (name)
  case 'Matlab'
    fprintf('My name is Matlab.\n');
  case 'Octave'
    fprintf('My name is Octave.\n');
   otherwise
    fprintf('My name is XXX.\n');
end

運行以上代碼,輸出以下內容:

Hello world !
My name is Octave.

  switch 語句和 if 語句一樣也可以進行嵌套使用,具體使用方法大致相同,就不詳細說明了。

二、循環語句

  在一般情況下,程序中的語句都是按照順序執行的。不過循環語句允許程序多次執行一個語句。
  Octave 提供 while 和 for 循環語句,以及 break 和 continue 循環控制語句。

2.1 while 循環

  只要表達式爲 true,while 循環會重複執行 while 和 end 之間的運算式。
  在 Octave 中,while 語句的使用語法如下:

while <expression>
  <statements>
end

  在 Octave 中輸入以下代碼:

a = 10;
while (a < 15)
  fprintf('value of a: %d\n', a);
  a++;
end

運行以上代碼,輸出以下內容:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14

2.2 for 循環

  for 循環是一個重複的控制結構,可以有效地寫一個循環,只是執行的次數是特定的。
  在 Octave 中,for 語句的使用語法如下:

for index = values
  <statements>
end

  for 循環的值有下面三種形式:

格式 描述
init_val:end_val 索引變量以步進值爲 1,從初始值遞增,並重復執行程序語句,直到索引值大於終值。
init_val:step:end_val 與上面的格式相同,不過這裏的步進值爲 step。
val_array 在每個迭代 val_array 數組的後續列中創建列向量索引。

  看完上面的解釋可能還是很懵懂,可以參照下面的例子進行理解。
例 1:
  在 Octave 中輸入以下代碼:

for a = 10:20
  fprintf('value of a: %d\n', a);
end

運行以上代碼,輸出以下內容:

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
value of a: 20

例 2:
  在 Octave 中輸入以下代碼:

for a = 10:2:20
  fprintf('value of a: %d\n', a);
end

運行以上代碼,輸出以下內容:

value of a: 10
value of a: 12
value of a: 14
value of a: 16
value of a: 18
value of a: 20

例 3:
  在 Octave 中輸入以下代碼:

for a = [10, 20, 16, 18, 12, 14]
  fprintf('value of a: %d\n', a);
end

運行以上代碼,輸出以下內容:

value of a: 10
value of a: 20
value of a: 16
value of a: 18
value of a: 12
value of a: 14

  循環語句和控制語句一樣,也可以進行嵌套使用。

2.3 break 語句

  break 語句用於終止 for 或 while 循環的執行。當在循環體內執行到該語句的時候,程序將會跳出循環,繼續執行循環體語句的下一語句。
  在 Octave 中輸入以下代碼:

for a = [10, 20, 16, 18, 12, 14]
  if (a == 18)
    break;
  end
  fprintf('value of a: %d\n', a);
end

運行以上代碼,輸出以下內容:(當 a == 18 時,直接跳出循環體)

value of a: 10
value of a: 20
value of a: 16

2.4 continue 語句

  continue 語句控制跳過循環體的某些語句。當在循環體內執行到該語句時,程序將跳過循環體中剩餘的語句,繼續下一次循環。與 break 的不同點是:break 是直接跳出循環體;而 continue 只是終止本輪循環,沒有跳出循環體。
  在 Octave 中輸入以下代碼:

for a = [10, 20, 16, 18, 12, 14]
  if (a == 18)
    continue;
  end
  fprintf('value of a: %d\n', a);
end

運行以上代碼,輸出以下內容:(當 a == 18 時,終止本輪循環,繼續下輪循環。可以對比上面的 break 語句例子)

value of a: 10
value of a: 20
value of a: 16
value of a: 12
value of a: 14

參考:
[1] https://www.w3cschool.cn/matlab/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章