| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

7.3 演算子を使用するELコード (算術演算子、比較演算子、論理演算子)

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

ある状況において、以下の演算子を使用するELコードを書く:算術演算子、比較演算子、論理演算子

http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html#wp71019

算術演算子

__加算演算子(+)__

備考
${1 + 2} 3
${1.0 + 2} 3.0
${"1.0" + 2} 3.0 文字列 + 数値 → 演算される
${"1.0" + "2"} 3.0 文字列 + 文字列 → 演算される
${"1 + 2"} 1 + 2 演算子が文字列に含まれると単なる文字列
${a + b} 0
${"a" + "b"} javax.servlet.jsp.el.ELException が発生 String "a" を "java.lang.Long" 型に変換しようとした際に例外が発生しました

__減算演算子(-)__

備考
${2 - 1} 1
${2.0 - 1} 1.0

__乗算演算子(*)__

備考
${3 * 5} 15
${0.12 * 0.34} 0.0408
${1e6 * 1} 1000000.0

__除算演算子(/ or div)__

備考
${1 / 3} 0.3333333333333333 整数÷整数でも実数になる(int型どうしの演算なら 0 となる)
${15 div 3} 5.0 整数÷整数でも実数になる
${1 div 0} Infinity Exceptionは発生しない

__モジュロ演算子(% or mod)__

備考
${10 % 3} 1
${10 mod 7} 7

比較演算子

__等号(== or eq)__

備考
${2.0 == 2} true
${"2.0" == "2"} false 文字列の比較になる?
${"2.0" == 2.0} true
<%= "abc" == (String)pageContext.getAttribute("abc") %> false new String("abc") をpageContextにセットし比較 → インスタンスが異なるため、falseとなる
${"abc" == pageScope.abc} true 文字列の内容比較となる

__不等号(!= or ne)__

備考
${pageScope.abc != "def"} true
${pageScope.abc ne "abc"} false
${1.00 ne 1e2} false

__小なり(< or lt)__

備考
${"abc" < "def"} true
${999 < 123} false

__大なり(> or gt)__

備考
${"abc" > "def"} false
${999 > 123} true

__小なりイコール(<= or le)__

備考
${1 / 3 <= 0.3} false
${1 / 2 <= 0.5} true

__小なりイコール(<= or le)__

備考
${1 / 3 >= 0.3} true
${1 / 2 >= 0.5} true

論理演算子

__論理積(&& or and)__

備考
${true && true} true
${"true" and "false"} false 引用符で囲まれていてもOK
${pageScope.isXXX and true} true コンテナに格納されたjava.lang.Boolean 型
${a and b} false 宣言していない変数を使用
${1 and 0} 例外 java.lang.Long 型の値を Boolean 型に変換しようとしています
${true & false} 例外 ${true & false} は無効な式を含んでいます

__論理和(|| or or)__

備考
${true false} true
${pageScope.isXXX or "false"} true

__否定(! or not)__

備考
${!true} false
${!"true"} false 引用符に囲まれていてもOK
${"!true"} !true 演算子が引用符に囲まれていれば文字列
${not pageScope.isXXX} false
三項演算子

__三項演算子__

備考
${true && true} 1
${(10 > 100)?"Yes.":"No."} No.

SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)



{{include_html banner_html, "!J2EE"}}