<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns="http://purl.org/rss/1.0/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
>
<channel rdf:about="http://www.gamesite8.com/">
<title>Javaから楽しく学ぶ！ゲームプログラミング専門学校 - 演算子</title>
<link>http://www.gamesite8.com/</link>
<description>ゲームプログラミングとはその名のとおりゲームのプログラムを作ることを指します。『Javaから楽しく学ぶ！ゲームプログラミング専門学校』ではゲームプログラミングについて、実際にゲームプログラムをJAVAプログラミング言語を使用し、作成していきながら詳しく解説していきます。
</description>
<dc:language>ja</dc:language>
<admin:generatorAgent rdf:resource="http://blog.livedoor.com/?v=2.0" />
<items>
 <rdf:Seq>
  <rdf:li rdf:resource="http://www.gamesite8.com/archives/603015.html" />
  <rdf:li rdf:resource="http://www.gamesite8.com/archives/603220.html" />
  <rdf:li rdf:resource="http://www.gamesite8.com/archives/604212.html" />
  <rdf:li rdf:resource="http://www.gamesite8.com/archives/607075.html" />
 </rdf:Seq>
</items>
</channel>

<item rdf:about="http://www.gamesite8.com/archives/603015.html">
<title>算術演算子</title>
<link>http://www.gamesite8.com/archives/603015.html</link>
<description>算術演算子には下表のような種類があります。

  演算子意味記入例
  +足し算a = b + c;
  -引き算a = b - c;
  *掛け算a = b * c;
  /割り算a = b / c;
  %余りa = b % c;
  ++インクリメント※1a++; ++a;
  --デクリメント※2a--; --a;


※1 インクリメント
...</description>
<dc:creator>gamesite8</dc:creator>
<dc:date>2009-04-19T02:48:37+09:00</dc:date>
<dc:subject>演算子</dc:subject>
<content:encoded><![CDATA[<b>算術演算子</b>には下表のような種類があります。<br />
<table id="tbl" border=1 cellspacing=0 cellpadding=3>
  <tr id="midasi"><th>演算子</th><th>意味</th><th>記入例</th></tr>
  <tr><td id="ctr">+</td><td>足し算</td><td>a = b + c;</td></tr>
  <tr><td id="ctr">-</td><td>引き算</td><td>a = b - c;</td></tr>
  <tr><td id="ctr">*</td><td>掛け算</td><td>a = b * c;</td></tr>
  <tr><td id="ctr">/</td><td>割り算</td><td>a = b / c;</td></tr>
  <tr><td id="ctr">%</td><td>余り</td><td>a = b % c;</td></tr>
  <tr><td id="ctr">++</td><td>インクリメント※1</td><td>a++; ++a;</td></tr>
  <tr><td id="ctr">--</td><td>デクリメント※2</td><td>a--; --a;</td></tr>
</table>
<br />
※1 <b>インクリメント</b><br />
a++と++aはともにaの値をひとつ増やしたもの（インクリメントしたもの）をaに代入します。<br />
両者の違いはインクリメントするタイミングです。<br />
a++は、そのステートメントを実行した後にインクリメントされ、++aは実行する前にインクリメントを行います。<br />
<pre>a = 10;<br />
System.out.println("a = " + a++);<br />
<br />
a = 10;<br />
System.out.println("a = " + ++a);<br />
</pre>
【実行結果】<br />
<i>a = 10;<br />
a = 11;<br /></i>
<br />
※2 <b>デクリメント</b><br />
a--と--aはともにaの値をひとつ減らしたもの（デクリメントしたもの）をaに代入します。<br />
後はインクリメントと同じです。
<br />
<br />
また、算術演算子、代入演算子をくっつけて式を簡略化することも可能です。<br />
<table id="tbl" border=1 cellspacing=0 cellpadding=3>
  <tr id="midasi"><th>演算子</th><th>意味</th><th>記入例</th></tr>
  <tr><td id="ctr">+=</td><td>a = a + b</td><td>a += b;</td></tr>
  <tr><td id="ctr">-=</td><td>a = a - b</td><td>a -= b;</td></tr>
  <tr><td id="ctr">*=</td><td>a = a * b</td><td>a *= b;</td></tr>
  <tr><td id="ctr">/=</td><td>a = a / b</td><td>a /= b;</td></tr>
  <tr><td id="ctr">%=</td><td>a = a % b</td><td>a %= b;</td></tr>
</table>
]]>
</content:encoded>
</item>
<item rdf:about="http://www.gamesite8.com/archives/603220.html">
<title>比較演算子</title>
<link>http://www.gamesite8.com/archives/603220.html</link>
<description>比較演算子には下表のような種類があります。

  演算子意味記入例
  右オペランドより小さいx 
  &amp;gt;右オペランドより大きいx &amp;gt; y;
  右オペランド以上x 
  &amp;gt;=右オペランド以下x &amp;gt;= y;
  ==等しいx == y;
  !=異なるx != y;


※オペランド：演算の対...</description>
<dc:creator>gamesite8</dc:creator>
<dc:date>2009-04-19T02:44:31+09:00</dc:date>
<dc:subject>演算子</dc:subject>
<content:encoded><![CDATA[<b>比較演算子</b>には下表のような種類があります。<br />
<table id="tbl" border=1 cellspacing=0 cellpadding=3>
  <tr id="midasi"><th>演算子</th><th>意味</th><th>記入例</th></tr>
  <tr><td id="ctr"><</td><td>右オペランドより小さい</td><td>x < y;</td></tr>
  <tr><td id="ctr">></td><td>右オペランドより大きい</td><td>x > y;</td></tr>
  <tr><td id="ctr"><=</td><td>右オペランド以上</td><td>x <= y;</td></tr>
  <tr><td id="ctr">>=</td><td>右オペランド以下</td><td>x >= y;</td></tr>
  <tr><td id="ctr">==</td><td>等しい</td><td>x == y;</td></tr>
  <tr><td id="ctr">!=</td><td>異なる</td><td>x != y;</td></tr>
</table>
<br />
※<b>オペランド</b>：演算の対象となる値や変数のこと。<br />
「x < y」という式では、xを左オペランド、yを右オペランドと表す。<br />
<br />
※上記表は演算の対象となる変数がプリミティブ型であった場合の意味になります。<br />
 → プリミティブ型については<a href="http://www.gamesite8.com/archives/420367.html">Javaデータ型</a><br />
<br />
演算対象がオブジェクトであった場合は意味が違ってきます。<br />

<pre>class EnSample01{<br />
    public static void main(String[] args) {<br />
        int x = 3;<br />
        int y = 3;<br />
        String strA = "テスト";<br />
        String strB = "テスト";<br />
        strA += "123";<br />
        strB += "123";<br />
        <br />
        System.out.println("x = " + x);<br />
        System.out.println("y = " + y);<br />
        if(x == y){<br />
            System.out.println("xとyの数値は一致します。");<br />
        }else{<br />
            System.out.println("xとyの数値は一致しません。");<br />
        }<br />
        <br />
        System.out.println("strA = " + strA);<br />
        System.out.println("strB = " + strB);<br />
        if(strA == strB){<br />
            System.out.println("strAとstrBの文字列は一致します。");<br />
        }else{<br />
            System.out.println("strAとstrBの文字列は一致しません。");<br />
        }<br />

    }<br />

}</pre>
String型は文字列を扱うために用意された<b>クラス</b>です。<br />
ですので、String型として定義されたstrA、strBをオペランドとして==演算子を使った場合、正しい結果が得られません。<br />
※上記サンプルではstrAとstrBに格納されている文字列が一致するかどうか調べることを意図としています。<br />
この場合、Stringクラスが持つ<b>equals()メソッド</b>を使用します。
<br />
<pre>if(strA.equals(strB) == true){<br />
     ………<br />
}</pre>
<b>equals()メソッド</b>は呼び出したオブジェクト（strA）と、引数で渡したオブジェクト（strB）の文字列が一致した場合、boolean型のtrueを返します。]]>
</content:encoded>
</item>
<item rdf:about="http://www.gamesite8.com/archives/604212.html">
<title>論理演算子</title>
<link>http://www.gamesite8.com/archives/604212.html</link>
<description>論理演算子には下表のような種類があります。

  演算子意味記入例
  &amp;&amp;かつ（And）(x == y) &amp;&amp; (a == b);
  ||または（Or）(x == y) || (a == b);
  !でない（Not）!(x == y);


class EnSample02{
    public static void main(String[] args) {
        int x =...</description>
<dc:creator>gamesite8</dc:creator>
<dc:date>2009-04-19T01:15:46+09:00</dc:date>
<dc:subject>演算子</dc:subject>
<content:encoded><![CDATA[<b>論理演算子</b>には下表のような種類があります。<br />
<table id="tbl" border=1 cellspacing=0 cellpadding=3>
  <tr id="midasi"><th>演算子</th><th>意味</th><th>記入例</th></tr>
  <tr><td id="ctr">&&</td><td>かつ（And）</td><td>(x == y) && (a == b);</td></tr>
  <tr><td id="ctr">||</td><td>または（Or）</td><td>(x == y) || (a == b);</td></tr>
  <tr><td id="ctr">!</td><td>でない（Not）</td><td>!(x == y);</td></tr>
</table>
<br />
<pre>class EnSample02{<br />
    public static void main(String[] args) {<br />
        int x = 3;<br />
        int y = 3;<br />
        int a = 9;<br />
        int b = 9;<br />
        <br />
        if((x == y) && (a == b)){<br />
            System.out.println("xとy かつ aとbは値が一致します。");<br />
        }else{<br />
            System.out.println("値は一致しません。");<br />
        }<br />
    }<br />
}</pre>
<br />
【実行結果】<br />
<i>xとy かつ aとbは値が一致します。</i>
<br /><br />
論理演算子はこれら以外にも、ビットごとに演算するビット演算子などがありますが、Javaを扱う上で最低限押さえておきたいのが上表に記載したものとなります。]]>
</content:encoded>
</item>
<item rdf:about="http://www.gamesite8.com/archives/607075.html">
<title>演算子の優先順位</title>
<link>http://www.gamesite8.com/archives/607075.html</link>
<description>演算子には優先順位という概念があります。
優先順位という概念が存在することで、一つの式に演算子を複数使っても矛盾なく計算されます。

例えば、下記のような式を見てみます。
a = 3 + 4 * 5;
【結果】
　　a = 23

足し算と掛け算を一つの式に含ませた場合、四...</description>
<dc:creator>gamesite8</dc:creator>
<dc:date>2009-04-19T00:09:38+09:00</dc:date>
<dc:subject>演算子</dc:subject>
<content:encoded><![CDATA[<b>演算子</b>には<b>優先順位</b>という概念があります。<br />
<b>優先順位</b>という概念が存在することで、一つの式に演算子を複数使っても矛盾なく計算されます。<br />
<br />
例えば、下記のような式を見てみます。<br />
<pre>a = 3 + 4 * 5;</pre>
【結果】<br />
　　a = 23<br />
<br />
足し算と掛け算を一つの式に含ませた場合、四則演算ではまず掛け算の部分から計算するようになっています。<br />
<br />
Javaもそれと同じで、まずは「4 * 5」を計算し、その結果に3を加えます。<br />
<br />
優先順位は下表のようになります。<br />
<table id="tbl" border=1 cellspacing=0 cellpadding=3>
	<tbody>
		<tr id="midasi">
			<th>優先順位</th>
			<th>演算子</th>
		</tr>
		<tr>
			<td id="ctr">1</td>
			<td>a++, a--</td>
		</tr>
		<tr>
			<td id="ctr">2</td>
			<td>+, -, ++a, --a, !, ~</td>
		</tr>
		<tr>
			<td id="ctr">3</td>
			<td>new, ()※1</td>
		</tr>
		<tr>
			<td id="ctr">4</td>
			<td>*, /, %</td>
		</tr>
		<tr>
			<td id="ctr">5</td>
			<td>+, -</td>
		</tr>
		<tr>
			<td id="ctr">6</td>
			<td><<, >>, >>></td>
		</tr>
		<tr>
			<td id="ctr">7</td>
			<td>>, <, >=, <=, instanceof</td>
		</tr>
		<tr>
			<td id="ctr">8</td>
			<td>==, !=</td>
		</tr>
		<tr>
			<td id="ctr">9</td>
			<td>&</td>
		</tr>
		<tr>
			<td id="ctr">10</td>
			<td>^</td>
		</tr>
		<tr>
			<td id="ctr">11</td>
			<td>|</td>
		</tr>
		<tr>
			<td id="ctr">12</td>
			<td>&&</td>
		</tr>
		<tr>
			<td id="ctr">13</td>
			<td>||</td>
		</tr>
		<tr>
			<td id="ctr">14</td>
			<td>?:</td>
		</tr>
		<tr>
			<td id="ctr">15</td>
			<td>=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=</td>
		</tr>
	</tbody>
</table>
※1：キャスト演算子<br />
<br />
同じ優先順位の演算子が並んだときは、左から順に計算されます。<br />
<br />
また、優先順位を明示的に上げてやる方法もあります。<br />
<pre>a = (3 + 4) * 5;</pre>
【結果】<br />
　　a = 35<br />
<br />
「3 + 4」の部分を()でくくってやることにより、掛け算より低いはずの足し算から計算するようになります。<br />
このようなしくみが用意されているため、演算子の優先順位を無理に覚える必要はありません。<br />
演算子には優先順位という概念が存在するということだけは念頭に入れておき、怪しいと思ったら()でくくってやり優先順位を調整してやれば良いのです。<br />]]>
</content:encoded>
</item>

</rdf:RDF>
