例題 配列変数aに100件分を”A”で初期化する。 解答 ArraySet関数を使うと1行で初期化できます。 長いことColdFusionをやっていますが、 実はArraySet関数を使ったことがありませんでした。 cfloopで対応していました。 いまさらながら反省!! ところで、本当にデータがセットされているか 確認したい場…
例題 配列変数に、それぞれ 2,3,4,5をセットし、 最大値最小値を表示する。 解答 もしa[2]=”あ”という文字だった場合は 非数値が見つかりました。 位置 2 の値は数値ではなかったか、定義されていませんでした。 と、エラーが表示されます。 それから配列の値の設定ですが、添え字指定ではなく 以下のような書き方もできます。
例題 配列変数に、それぞれ 1,2,3,4,5をセットし、 合計を表示する。 解答 配列の値が数値だけの場合は、合計の関数を使えばいいですね。 ついついループ処理で加算するプログラムを 書いてしまいます。 ちょっと反省。
例題 配列変数aに、それぞれ 「東京」「神奈川」「千葉」「埼玉」とセットし、 「東京と神奈川と千葉と埼玉は日本の都道府県の一部です」 と表示する。 解答 「配列の値を表示する場合は、ループして処理をすればいい」 と、普通なら考えますが、もちろん可能です。 その場合は と、なるでしょう。 なんだか複雑そうですね。 ColdFusi…
例題 以下のカンマ区切りの文字列をカンマで分解して表示する。 東京,神奈川,千葉,埼玉 解答 神奈川と千葉の間にカンマが3つあったとしても 表示は同じです。 なんと! ColdFusionでは空データが無視されています。 ListLen関数でも項目数は4となります。 1995年の初期の頃は必要なかったのかもしれませんが、 基幹業務などのCSV…
例題 変数url.aの値が「D1」、「D2」、「D3」の場合と、それ以外の処理がわかるようなロジックを作成 解答 もちろんcfif,cfelseifで書く方法もありますが、 見やすさの点ではcfswitchですね。 ちなみにcfparam関数によって変数url.aが存在しない場合は url.aの変数を生成しdefaultの値を設定しています。 変数が存在し…
例題 変数aに「0123」、変数bに「45」をセットし 比較結果を表示する。 解答 うっかり前回と同じようにすると意図した結果になりません。 ColdFusionの変数は型がないということで 手軽にプログラミングできる反面 ColdFusion側が余計なお世話で勝手に変換してくれます。 「文字列の比較」ということであれば Compare関数を使ってください…