例題 配列変数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関数を使ってください…
例題 変数aに「abc」、変数bに「de」をセットし 比較結果を表示する。 解答 スクリプト形式のプログラムなら「>=」と書くのですが タグの終了と混同しないためにgteと書きます。 ちなみにCFScriptでは、以下のとおりです。 その他の演算子は以下のとおりです。 CFScript の演算子 CFML の演算子 == …
例題 変数aに数値2、変数bに文字「3」をセットし、 合計を表示する。 解答 ColdFusion側で変数bの値を自動的に数値に変換します。 たとえば変数bに文字列「さん」をセットして実行した場合は ColdFusionのエラーとなります。 ちなみに変数aと変数bを文字列として連結する場合は、 とします。
ColdFusionでは変数の型を意識することはないのですが、 Javaとの連携がしやすいため、 実数はfloatかdoubleを使用する場合があります。 最近まで 「ほかのところでfloat使っているから僕も使おう」 などと安易に考えて 誤差で悩まされたことがありました。 検索してみると、doubleを使ったほうがいいという意見が多いですね。 これからは使えるならdo…
例題 変数aに1.234567890123456789、変数bに0.000000000000000009をセットし、 合計を表示する。 解答 合計1は1.23456789012 この値は正確ではありません。 これは実数の有効値が最大12桁という理由です。 合計2は1.234567890123456798 ColdFusionのリファレンスによると、 Pre…
例題 変数aに2、変数bに3をセットし、 合計を表示する。 解答 ちなみに、変数の型宣言はありません。
今回から例題形式でやっていきたいと思います。 例題 変数aに「日本」、変数bに「東京」とセットし、 「日本の首都は東京です」 と表示する。 解答 cfoutputタグでくくられた変数は 変数の前後に#をつけることで 変数の値を表示することができます。 #の文字を表示する場合は##とします。