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

FreeBASIC Ubound

目次→実行時ライブラリー参考→配列関連UBOUND←オリジナル・サイト

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

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

配列の次元に対応した、添え字数の範囲の上限を返します。

構文:
declare function Ubound ( array() as any, byval dimension as integer = 1 ) as integer

用法:
result = Ubound( array [, dimension ] )

パラメタ:
array
配列の名前。どの型の配列でもよい。
dimension
上限を取得する次元

戻り値:
配列の次元の上限を返します。

記述:
Ubound は、配列の特定の次元に使用できる、添え字の最大値を返します。

配列の次元は、1 (1) 〜 n まで付番されます。ここで、 n が次元の総数です。
dimension指定しないとUbound最初の次元の上限を返します。

dimension が、ゼロ(0)ならUboundn (配列の次元の数)を返します。
有効な範囲 1..n の外側の、無効な(0でない) dimension 値では、結果は -1 です。
これは可変長配列の、次元の数を検知するために使うことができます。
また、このような場合、 Lbound() の結果と合わせて、与えられた次元が存在するかどうか、あるいは、配列が空(0次元)かどうか、の検知にも使うことができます。
詳細は、Lbound ページを参照してください。

例:

Dim array(-10 To 10, 5 To 15, 1 To 2) As Integer

Print UBound(array) '10を返します
Print UBound(array, 2) '15を返します
Print UBound(array, 3) '2を返します
Sleep

 


'' 配列のサイズを測定します。
Dim As Short array(0 To 9)
Dim As Integer arraylen, arraysize

arraylen = UBound(array) - LBound(array) + 1
arraysize = arraylen * SizeOf( Short )

Print "配列の中の要素数:", arraylen    '10
Print "配列で使われているバイト数:", arraysize '10 * 2 = 20 
Sleep

 


'' 多次元配列のサイズを測定します
Dim As Long array4D(1 To 2, 1 To 3, 1 To 4, 1 To 5)
Dim As Integer arraylen, arraysize


arraylen = (UBound(array4D, 4) - LBound(array4D, 4) + 1) _
         * (UBound(array4D, 3) - LBound(array4D, 3) + 1) _
         * (UBound(array4D, 2) - LBound(array4D, 2) + 1) _
         * (UBound(array4D, 1) - LBound(array4D, 1) + 1)

arraysize = arraylen * SizeOf( Long )

Print "配列の中の要素数:", arraylen    '2 * 3 * 4 * 5 = 120
Print "配列で使われているバイト数:", arraysize '120 * 4 = 480
Sleep

 


'' 配列が空かどうか判断する
Dim array() As Integer

Print "lbound: "; LBound( array ), "ubound: "; UBound( array )  ''  0 and -1

If LBound( array ) > UBound( array ) Then
    Print "配列は空白"
Else
    Print "配列は空白ではない"
End If
Sleep



Sub printArrayDimensions( array() As Integer )
    Print "dimensions: " & UBound( array, 0 )

    '' For each dimension...
    For d As Integer = LBound( array, 0 ) To UBound( array, 0 )
        Print "dimension " & d & ": " & LBound( array, d ) & " to " & UBound( array, d )
    Next
End Sub

Dim array() As Integer
printArrayDimensions( array() )

Print "---"

ReDim array(10 To 11, 20 To 22)
printArrayDimensions( array() )
Sleep


参照:
配列関連に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2021-12-09 13:57:50
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

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

表示-非営利-継承