7.3 演算子を使用するELコード (算術演算子、比較演算子、論理演算子)
ナビゲーションに移動
検索に移動
ある状況において、以下の演算子を使用する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"}}
© 2006 矢木浩人