トップ 一覧 ping 検索 ヘルプ RSS ログイン

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.,  

----
{{amazon 1932394389}}
[SCWCD Exam Study Kit: Java Web Component Developer Certification (ペーパーバック)|http://www.amazon.co.jp/dp/1932394389?tag=typea09-22&link_code=as3&creativeASIN=1932394389&creative=3999&camp=767]


----
{{include_html banner_html, "!J2EE"}}