FreeBASIC マニュアルのトップに戻る

FreeBASIC Iif

目次→その他→その他の予約語IIF←オリジナル・サイト

IIF 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

2つの値の内、1つを返す、条件付きの関数。

構文:
IIf ( condition, expr_if_true, expr_if_false )

パラメタ:
condition
テストする条件。
値が非ゼロだと true (正)と評価して、ゼロは false (誤)として評価します。
expr_if_true
評価して、condition が true (正)のときに、返す表現。
戻り値は、以下の可能性があります:
expr_if_false
評価して、condition が false (誤)のときに返す表現。
expr_if_true と同じ型でなければなりません。(数字でも、文字列でも UDT でも)

戻り値:
condition がゼロ以外の場合は expr_if_true、それ以外の場合は expr_if_false

記述:
IIf は、実行時に評価される条件式の結果に応じて、異なる数値、文字列、UDT 値 (参照ではない) を返します。
その典型的な使用法は式の途中です。式の途中に条件を入れるために式を分割することを避けます。

IIf は、それが返す必要がある式を評価するだけです。
これは、時間を節約します。また、condition によって、無効であるかもしれない式を評価するのを防ぐために、役に立つ場合があります。

IIf が混合数値型の式を扱う場合(実行時に評価される条件式):

注意: 条件評価をコンパイル時にできる場合(比較式が定数の場合)、使用ルールはもう少し柔軟になり、IIf は例えば参照を返したり、関数呼び出しを返すことができます(サブ呼び出しは不可)。

例:
Dim As Integer a, b, x, y, z
a = (x + y + IIf(b > 0, 4, 7)) \ z


は、下のコードと同等です

Dim As Integer a, b, x, y, z, temp
If b > 0 Then temp = 4 Else temp = 7
a = (x + y + temp) \ z



Dim As Integer I
I = -10
Print I, IIf(I>0, "positive", IIf(I=0, "null", "negative"))
I = 0
Print I, IIf(I>0, "positive", IIf(I=0, "null", "negative"))
I = 10
Print I, IIf(I>0, "positive", IIf(I=0, "null", "negative"))
Sleep



Type UDT1
  Dim As Integer I1
End Type

Type UDT2 Extends UDT1
  Dim As Integer I2
End Type

Dim As UDT1 u1, u10 = (1)
Dim As UDT2 u2, u20 = (2, 3)

u1 = IIf(0, u10, u20)
Print u1.I1
u1 = IIf(1, u10, u20)
Print u1.I1

u2 = IIf(0 , u10, u20)
Print u2.I1; u2.I2
'u2 = Iif(1, u10, u20) ''Invalid assignment/conversion
Sleep



方言差:

QBからの違い:

参照:
その他の予約語に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2023-06-30 01:14:27
日本語翻訳:WATANABE Makoto、原文著作者:AntoniGual

ホームページのトップに戻る

表示-非営利-継承