Octave入門チュートリアル:if / switch / while / for / break / continueステートメント



Octave Getting Started Tutorial



Octave入門チュートリアルカタログについては、次をクリックしてください。 https://blog.csdn.net/benzhujie1245com/article/details/83146777



この記事では、Octaveの制御ステートメント(if / switch)とループステートメント(for / while / break / continue)の使用方法について説明します。
プログラミング言語をすでに知っている場合は、大まかに読んで、基本的にその使用方法を知っているだけです。プログラミング言語がわからない場合は、以下をよくお読みになることをお勧めします。



まず、制御ステートメント

Octaveは、ifおよびswitch制御ステートメントを提供します。

1.1ifステートメント

1.1.1 if ... endステートメント

Octaveでは、if ... endステートメントの構文は次のとおりです。



if end

式の結果がtrueの場合、ステートメントは実行されます。それ以外の場合、ステートメントは実行されません。
Octaveに次のコードを入力します。

fprintf('Hello world ! ') If false % The value of the expression is false, the statement between if and end is not executed fprintf('my name is Octave. ') end

上記のコードを実行して、以下を出力します。

Hello world !
1.1.2 if ... else ... endステートメント

Octaveでは、if ... endステートメントの構文は次のとおりです。



if else end

式の結果がtrueの場合、ifとelseの間にステートメントを実行し、それ以外の場合は、elseとendの間にステートメントを実行します。
Octaveに次のコードを入力します。

fprintf('Hello world ! ') If true % expression evaluates to true, executing a statement between if and else fprintf('my name is Octave. ') else fprintf('my name is Matlab. ') end

上記のコードを実行して、以下を出力します。

Hello world ! My name is Octave.
1.1.3 if ... elseif ... else ... endステートメント

Octaveでは、if ... endステートメントの構文は次のとおりです。

if elseif else end

最終的には、ステートメントの1つだけが実行されます。実際の使用では、中央に複数のelseifが存在する可能性があり、最後のelseはオプションです。
Octaveに次のコードを入力します。

fprintf('Hello world ! ') a = 20 If a == 10 % The value of the expression is false, jump to the elseif statement to determine fprintf('my name is XXX ') Elseif a == 20% The value of the expression is true, the statement between elseif and else is executed, after execution, after jumping to end fprintf('my name is Octave. ') else fprintf('my name is Matlab. ') end

上記のコードを実行して、以下を出力します。

Hello world ! My name is Octave.
1.1.4ネストされたifステートメント

Octaveでは、if ... endステートメントの構文は次のとおりです。

if if end end

Octaveに次のコードを入力します。

fprintf('Hello world ! ') a = 10 if a <20 if true fprintf('my name is Octave. ') end end

上記のコードを実行して、以下を出力します。

Hello world ! My name is Octave.

1.2switchステートメント

switchステートメントは、いくつかのオプションから選択された一連のステートメントを条件付きで実行します。各オプションは、caseステートメントをカバーしています。
Octaveでは、switchステートメントの構文は次のとおりです。

switch case case ... ... otherwise end

true Octaveのケース式がある場合、対応するステートメントを実行し、他のステートメントを実行しなくなった後、switchステートメントブロックを直接終了します。 elseステートメントブロックはオプションであり、caseステートメントブロックの数は任意の数です。
注:Octaveの他の場合のキーワードはそれ以外の場合であり、一般的なプログラミング言語のデフォルトとは異なります。
Octaveに次のコードを入力します。

fprintf('Hello world ! ') name = 'Octave' switch (name) case 'Matlab' fprintf('My name is Matlab. ') case 'Octave' fprintf('My name is Octave. ') otherwise fprintf('My name is XXX. ') end

上記のコードを実行して、以下を出力します。

Hello world ! My name is Octave.

switchステートメントはifステートメントと同様にネストできます。具体的な使用法はほぼ同じであり、詳細には説明しません。

次に、ループステートメント

一般に、プログラム内のステートメントは順番に実行されます。ただし、ステートメントをループさせると、プログラムはステートメントを複数回実行できます。
Octaveは、whileループステートメントとforループステートメント、およびbreakループとcontinueループの制御ステートメントを提供します。

2.1whileループ

式がtrue whileループである限り、whileループとendの間で式が繰り返されます。
Octaveでは、whileステートメントの構文は次のとおりです。

while end

Octaveに次のコードを入力します。

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

上記のコードを実行して、以下を出力します。

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

2.2forループ

forループは、実行回数が特定されていることを除いて、効果的にループを記述できる反復制御構造です。
Octaveでは、forステートメントの構文は次のとおりです。

for index = values end

forループの値には、次の3つの形式があります。

フォーマット 説明
init_val:end_val インデックス変数は、ステップ値1で初期値からインクリメントされ、インデックス値が最​​終値より大きくなるまでプログラムステートメントが繰り返されます。
init_val:step:end_val 上記と同じ形式ですが、ここでのステ​​ップ値はステップです。
val_array val_array配列の各反復の後続の列に列ベクトルインデックスを作成します。

上記の説明を読んだ後でも、それはまだ非常に無知かもしれません。次の例を参照すると理解できます。
例1:
Octaveに次のコードを入力します。

for a = 10:20 fprintf('value of a: %d ', 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 ', 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 ', 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.3breakステートメント

breakステートメントは、forループまたはwhileループの実行を終了するために使用されます。ステートメントがループ本体で実行されると、プログラムはループからジャンプして、ループ本体ステートメントの次のステートメントの実行を続行します。
Octaveに次のコードを入力します。

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

上記のコードを実行し、以下を出力します:( a == 18の場合、ループ本体から直接ジャンプします)

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

2.4ステートメントの継続

Continueステートメントは、ループ本体をスキップするいくつかのステートメントを制御します。ステートメントがループの本体で実行されると、プログラムはループ本体の残りのステートメントをスキップして、次のループを続行します。 breakとの違いは、breakはループ本体から直接ジャンプし、continueはループ本体からジャンプせずに現在のループを終了することです。
Octaveに次のコードを入力します。

for a = [10, 20, 16, 18, 12, 14] if (a == 18) continue end fprintf('value of a: %d ', 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/