loop

Last-modified: 2026-02-11 (水) 13:55:31

ループと分岐
目次

if ステートメント選択ステートメント for ステートメント while ステートメントブレークと続行ステートメント
このセクションでは、条件文を作成する方法、すなわち if 文を提示する方法について説明します。
select ステートメントを提示し、より複雑な選択を作成します。Scilab ループ、つまり for と while ステートメントを提示します。最後に、ループを管理するための2つの主なツール、つまりブレークと継続ステートメントを提示します。if 文
if 文は条件が満たされた場合に文を実行します。if は、ブール値変数を使用してその選択を実行します。 ブール値がtrueの場合、ステートメントが実行されます。条件は end キーワードで閉じられます。[1]: if ( %t ) では、
disp("Hello! " )
end Out [1]:
"Hello! "
条件が満たされない場合、 else 文は次のスクリプトのように代替文を実行します。[2]: if ( %f ) では、
disp("Hello! " )
else
disp("Goodbye! " )
end Out [2]:
「さようなら! 」
ブール値を取得するために、任意の比較演算子 (例えば ==, > など) を使用できます。. または、ブール値を返す関数。次のセッションでは、 == 演算子を使用して "Hello! " というメッセージを表示します。[3]: i = 2;
もし ( i == 2 ) ならば
disp("Hello! " )
else
disp("Goodbye! " )
end Out [3]:
"Hello! "
条件で = 演算子を使用しないことが重要です。 すなわち、 if ( i = 2 ) という文を使用してはなりません。= 演算子が変数を設定するので、比較演算子 == と異なります。エラーが発生した場合、Scilabは何か問題が発生したことを警告します。
複数の条件を組み合わせる必要がある場合、 elseif 文が役に立ちます。次のスクリプトでは、整数 i のさまざまな値を管理するために、いくつかの elseif 文を組み合わせます。In [4]: i = 2
もし ( i == 1 ) ならば
disp("Hello! " )
elseif ( i == 2 ) 次に
disp("Goodbye! " )
elseif ( i == 3 ) 次に
disp("チャオ!")
else
disp("Au Revoir! " )
end Out [4]: i =
2.

「さようなら! 」
elseif ステートメントは必要に応じて使用することができ、これは必要に応じて複雑なブランチを作成します。しかし、他のif ステートメントが必要なものがたくさんある場合、これは select ステートメントが代わりに使用されるべきであることを意味するかもしれません。select 文
選択文は、いくつかのブランチを明確で簡単な方法で組み合わせます。変数の値に応じて、ケースキーワードに対応するステートメントを実行します。必要に応じて、ブランチを数えることができます。次のスクリプトでは、与えられた整数iに対応する文字列を表示します。[5]: i = 2
i を選択します。
case 1
disp("One")
case 2
disp("Two")
case 3
disp("Three")
else
disp("Other")
end Out [5]: i =
2.

"Two"
else ブランチは、以前のすべてのケース条件が偽の場合に使用されます。それはオプションですが、良いプログラミング練習と見なされます。実際、プログラマが関連するケースが発生しないと考えていても、ロジックにバグが存在する可能性があるため、すべての条件が偽である必要があります。
この場合、 else ステートメントが実行を中断しない場合、スクリプト内の残りのステートメントが実行されます。これは予期しない結果につながる可能性があります。最悪のシナリオでは、スクリプトはまだ機能しますが、一貫性のない結果があります。
そのようなスクリプトをデバッグすることは非常に困難であり、時間の大幅な損失につながる可能性があります。
これらの予期しないイベントを管理するために、私たちはしばしばエラー関数と選択文を組み合わせます。エラー関数は、与えられたメッセージに関連付けられたエラーを生成します。エラーが生成されると、実行が中断され、インタプリタはすべての関数を終了します。したがって、コールスタックがクリアされ、スクリプトが停止します。次のスクリプトでは、正の変数の値に応じてメッセージを表示します。その変数が負の場合、エラーが発生します。In [6]: i = -5;
i を選択します。
case 1
disp("One")
case 2
disp("Two")
case 3
disp("Three")
else
error ( " パラメータの予期しない値 i " )
end Out [6]:
パラメータの予期しない値 i for 文
for ステートメントはループを実行します。 つまり、指定されたアクションを数回実行します。ほとんどの場合、ループは開始から終了までの整数値で実行されます。このセクションの最後に、 for 文はマトリックスの値をループすることを可能にするため、実際にははるかに一般的であることがわかります。 次の Scilab スクリプトでは、1 から 5 の値を表示します。[7]: for i = 1 : 5
disp(i)
end Out [7]:
1.

2.

3.

4.

5.
前の例では、ループは整数値を含む浮動小数点数の行列上で実行されます。実際、サブスクリプトのベクトルを作成するために colon : operator を使用しました。
[1 2 3 4 5].
次のセッションでは、ステートメント1:5が行ベクトルに必要な整数値をすべて生成することを示します。[8]: i = 1:5 Out [8]: i =
1. 2. 3. 4. 5.
前回のループでは、行列1:5はダブルの行列であることを強調しています。したがって、変数 i もダブルです。この点については後でこのセクションで検討します。 ループの一般的な形式を検討します。 1から5までの奇数整数を表示するために、コロン演算子のより完全な形式を使用できます。
これを行うために、コロン演算子のステップを2に設定します。これは、次の Scilab スクリプトによって実行されます。[9]: for i = 1:2:5
disp(i)
end Out [9]:
1.

3.

5.
コロン演算子を使用して後方ループを実行できます。次のスクリプトでは、5から1までの数字を表示します。[10]: for i = 5:-1:1
disp(i)
end Out [10]:
5.

4.