カテゴリー
Java

2次元配列について知ろう

この章では2次元配列について説明します。
2次元配列は行と列の2次元で配列を考えます。
原理的には3次元、4次元なども可能ですが、混乱の元ですので、この本では2次元のみを説明します。
2次元配列を表にすると以下の通りです。1 詳しい説明は例のあとで行います。11 2次元配列も通常の配列と同じように宣言を行ってからデータを入れます。1 では例の2次元配列について詳しく説明します。
行の要素数は1111と、合計して4つあります。
これは1次元配列に相当するものです。
列の要素数はそれぞれの1次元配列に相当するnumber[0]、number[1]、number[2]、number[3]に入っている要素数なので3になります。
つまり、配列の中に配列が入っている状態と言えます。
さらに詳しく説明します。
〇 1次元の配列number[0]には111の合計3つの要素が入っているので2次元配列になっています。
number[0][0]は0番目の配列number[0]の0番目の要素と言う意味です。
number[0][1]は0番目の配列number[0]の1番目の要素と言う意味です。  
number[0][2]は0番目の配列number[0]の2番目の要素と言う意味です。

〇 1次元の配列number[1]には111の合計3つの要素が入っているので2次元配列になっています。
number[1][0]は1番目の配列number[1]の0番目の要素と言う意味です。
number[1][1]は1番目の配列number[1]の1番目の要素と言う意味です。  
number[1][2]は1番目の配列number[1]の2番目の要素と言う意味です。

〇 1次元の配列number[2]には111の合計3つの要素が入っているので2次元配列になっています。
number[2][0]は2番目の配列number[2]の0番目の要素と言う意味です。
number[2][1]は2番目の配列number[2]の1番目の要素と言う意味です。  
number[2][2]は2番目の配列の2番目number[2]の要素と言う意味です。

〇 1次元の配列number[3]は111の合計3つの要素が入っているので2次元配列になっています。
number[3][0]は3番目の配列number[3]の0番目の要素と言う意味です。
number[3][1]は3番目の配列number[3]の1番目の要素と言う意味です。  
numbe [3][2]は3番目の配列number[3]の2番目の要素と言う意味です。
図にすると次の通りです。1
では例の詳細について説明します。
型をint,配列名をnumberにして2次元配列を作っています。
int[][] number;
=>まず初めに2次元配列の宣言をします。
number=new int[4][3];
=>次に配列の要素をどんな型でいくつ作るかを決めて、new演算子で作成します。
つまり、int型の要素を行の要素4つと列の要素 3つで作っています。
そして、作ったものを配列numberに代入しています。

次は2次元配列にデータを入れる方法を説明します。
new int[4][3];のように4つの行の要素と4つの行の要素それぞれには3つの値があるので、1という構文でデータを入れます。1 また以下のような形式で、配列の作成とデータの挿入をまとめて書くこともできます。1 では例を見てみましょう。1 では説明をしていきます。1111

カテゴリー
Java

配列について知ろう

この章では配列について説明します。
変数は1つの値しか保存できませんが、配列は複数のデータをひとまとめに扱うことが出来ます。
変数と配列の違いを比べてみましょう。
最初の例は普通の変数で書いたプログラムです。1 次は配列の例をみてみましょう。11 変数の例には3つの変数が記述されていますが、一見するとこの3つの変数はお互いに関連しているように見えますが、1つ1つの変数は全く別々の変数です。
専門的に言いますと変数の保存場所が3つとも別と言う意味です。
これらの変数同士を結び付けているのはプログラマ自身です。
int test1=22;
int test2=23;
int test3=33;
これらの複数の変数を1つの変数として扱いたい場合には配列を使うと便利です。
例えば人の身長、体重、年齢などを別々の変数で管理するのではなく、ひとまとめに管理したい場合に配列を使います。
では配列の作り方について説明します。
配列を使うには初めに配列の宣言をします。1 この例では「int[] test;」の部分が配列の宣言です。
double型のデータを入れたいのであれば1と書きます。
stringのデータを入れたいのであれば1です。
宣言の後にすることは配列に入れるデータの数を決めることです。1 test=new int[3];
=>「配列の宣言」をした後は配列の要素(データ)をどんな型でいくつ作るかを決めて、new演算子で作成します。
この例では配列の要素をint型で3つ作っています。
そして、作ったものを配列(この例ではtest)に代入します。

次は配列の宣言と要素数の作成を1行で書く方法について説明します。1 int[] test;と1は以下のように1つにまとめることが出来ます。1

次は作った配列にデータを入れる方法について説明します。
基本構文は以下の通りです。1 この例ではint型の要素を3つ持った配列を作ったので、以下のようにデータを入れていきます。1 [ ]の中に[0][1][2]と数値が入っていますが、この数値をインデックス番号もしくは添え字と言います。
添え字は0から順番に番号が付けられていきます。
添え字とは配列のデータがどこに保管してあるのかを管理する番号です。
例えばコインロッカーには番号が振ってありますが、この番号があるからこそ、どこに荷物があるのかが分かるように、添え字も考え方は同じです。
つまり、この例は以下のような意味があります。
配列testの0番目には22という要素が入っていて、配列testの1番目には23という要素が入っていて、配列testの2番目には34という要素が入っています。
次に1で合計して1で出力しています。

次の例は配列の宣言とその配列にデータを入れる作業を簡単に記述する方法について説明します。1 以前は1 と、記述していましたが、
例のように1と記述すれば1行で済みます。1 また、他の書き方として1のように書くことが出来ます。
基本構文は以下の通りです。1
では次は参考までにStringで配列を作ってみましょう。
今まで見てきた配列の構造と作り方は同じです。1 結果は次の通りです。1
次は配列に要素が何個入っているかを調べる方法について説明します。
では例をみてみましょう。1 配列の中の要素数を調べるには1と、書きます。
配列名とlengthの間に1があるので気を付けてください。
結果は1です。

カテゴリー
Java

エスケープシーケンスについて知ろう

この章ではエスケープシーケンスについて説明します。
エスケープシーケンスとは、ダブルクォートやシングルクォートなど文字列として入力することが出来ない特殊な文字を1を使って表現します。1 では例をみてみましょう。1 結果は以下の通りです。11 =>
1は改行を意味しますので、「あ」と「い」の間に改行を入れます。

1 =>シングクォートで囲まれた中で1を表示させるためには1と書きます。

1 =>ダブルクォートで囲まれた中で1を表示させるためには1と書きます。

1 =>文字列にタブを入れたい場合は1を入れます。

カテゴリー
Java

インクリメント演算子とデクリメント演算子

この章ではインクリメント演算子とデクリメント演算子について説明します。
インクリメント演算子を加算子、デクリメント演算子を減算子とも言います。
インクリメント演算子とは変数の値に1を加算すると言う意味で1または1のように記述します。
x++ を後置インクリメント演算子と言います。
++xを前置インクリメント演算子と言います。
デクリメント演算子とは変数の値を1だけ減算すると言う意味で1または1のように記述します。
x- -を後置デクリメント演算子と言います。
– -xを前置デクリメント演算子と言います。1 では例をみてみましょう。11 number = number + 1;は右辺であるnumber + 1の結果である3を計算してから左辺のnumberに代入しています。
++number2;は2に1を足しているので3になります。
number3++;も2に1を足しているので3になります。
– -number4は2から1を引いているので1になります。
number5- – も2から1を引いているので1になります。
このように単独で前置デクリメント演算子や後置インクリメント演算子を使う時には結果は同じになります。
しかし、式の中で使用すると結果が違ってきますので、以下の例を見てみましょう。11 num=++number+1;はnumberの値がインクリメントで1加算されてから、さらに1を足してnumに代入されますので1の結果は4になります。
この時にはnumberはインクリメントで3になっているので1の結果は3になります。
num2=number3++ +1;は1を先に計算してnum2に結果を代入してから、number3に1を足しますので1は3になります。
つまり、最初の計算では「++」は無視されます。
num2に結果を代入してからnumber3に1が加算されますので1は3になります。
前置デクリメント演算子と後置デクリメント演算子も原理は同じなので説明は省きます。

カテゴリー
Java

複合演算子を知ろう

この章では複合演算子について説明します。
複合演算子とは算術演算子と代入演算子が複合して結びついている演算子のことをいいます。
例えば本来1と書かなくてはいけないところ、1のように短縮して書くことが出来ます。
複合演算子はaとbを計算したものをaに代入すると言う意味です。1 では例をみてみましょう。11 number1+= 8;は1と同じ意味になります。
右辺にあるnumber1+8を計算してから、number1にその結果を代入してます。

 

number2 -= 8;は1と同じ意味になります。
右辺を計算してから左辺に代入しています。

 

number3 *= 8;は1と同じ意味になります。
右辺を計算してから左辺に代入しています。

 
number4 /= 3;は1と同じ意味になります。
右辺を計算してから左辺に代入しています。

 

number5 %= 4;は1と同じ意味になります。
右辺を計算してから左辺に代入しています。

カテゴリー
Java

算術演算子について知ろう

この章では算術演算子について説明します。
算術演算子とは
「+」「-」「*」「/」「%」
のことを言います。1 では例をみてみましょう。11 以下のように計算式を書くことでプログラムで計算することが出来ます。1 〇1つの式の中で複数の算術演算子を使う場合、計算の優先順位は1より1の方が高いので、掛け算から先に計算してから、足し算が行われます。
優先順位を変えたい場合は1のように優先させたい箇所にカッコを入れてください。
〇文字列と計算式を混在させて書くときには以下のように括弧を付けてください。1 以下の例のように括弧を付けないと初めに1が結び付きます。
そしてその後に「b」が結びつくので1になって、計算が出来なくなってしまいます。
しかし、括弧を付けるのは足し算もしくは引き算の場合のみです。1 以下のように掛け算もしくは割り算の場合には括弧を付ける必要はありません。1 なぜなら、1のほうが優先順位が高いので、括弧を付けないでも、1から計算してくれます。
優先順位とは普通の計算式でも掛け算の方が足し算より先に計算が行われるようにJavaの演算子同士でも優先順位があります。

カテゴリー
Java

データ型について知ろう

この章ではデータ型について説明します。
データ型とは変数に入れるデータがどのような性質のデータなのかを分類したものです。111 boolean型は論理型と呼ばれていますが、trueとfalseを使用します。
これについては「if文について知ろう1」の章で説明します。
char型は「’a’」のように1文字だけを格納するためのデータ型です。
半角アルファベットや全角文字などがchar型であり、これらをシングルクォートで囲みます。
char型は2バイトの UNICODE文字です。
UNICODEとは世界中のあらゆる国で使われている文字を1つの文字コードとしてまとめている規格です。
byte型は「-128~ +127」までの整数を入れることが出来ます。
short型は「-32768~ +32767」までの2バイトの整数を入れることが出来ますが、メモリはint型の半分になります。
int型は「-2147483648~ +2147483647」までの4バイトの整数を入れることが出来ます。
整数を入れるのにbyteやshortもありますが、intがよく使われます。1 浮動小数点数型はdouble型とfloat型の2種類が有ります。
double型は8バイト=64ビットのサイズで倍精度浮動小数点数型と呼ばれています。11 基本的には変数には指定したデータ型のデータしか入れてはいけません。
しかし、「ある変数」に違うデータ型の変数を入れても精度が落ちないと判断すれば違うデータ型の変数でも入れることが出来ます。
精度が落ちないとは小さいサイズのデータ型変数を大きいサイズのデータ型変数に代入する時です。
この時に型の変換が行われます。
例えばintの変数をlongの変数に代入したり、intの変数をdoubleの変数に代入することがこれに当たります。
型の大きさは以下の通りになります。1 一番右のdoubleが一番大きいサイズになります。
注意点としてはchar型からbyte型やshort型には自動変換できません。
では例をみてみましょう。1 例のようにint型の変数をdouble型の変数に代入するとdouble型の変数に自動変換されます(補足ですが、このように変数に変数を入れることができます)。
結果、int型の変数の値である「10」はdouble型の変数の値「10.0」に自動変換されます。
また、int型の変数の値をlong型の変数に代入すると、long型の変数に変換されます。
結果は同じ10ですが、型の変換が行われています。
次は計算での型変換です。
式の中に異なる型が混ざっている時は小さい型が大きい型に自動変換されてから計算されます。
例えば以下の例の場合はint型の変数kがdouble型に変換されるので「2.0」になりますので、「2.0+2.3」という計算がされます。1 基本的には大きい型から小さい型への変換、例えばlong型変数をint型変数に代入するなどは禁止していますが、どうしても大きい型から小さい型への変換を行いたい場合にはキャスト演算子を使って強制的に型変換を行う方法があります。1 ではキャスト演算子の例を見てみましょう。1 では解説をしていきます。1 =>ここでの計算はint型同士の割り算の結果をint型 w に代入しています。
int型は整数型なので、小数点以下は表示されず、結果は2になります。
次は以下の箇所の説明をします。1 =>(float)iの部分は1というキャスト演算子を使ってint型 iをfloat型に変換しています。
式の中に異なる型が混ざっている時は小さい型が大きい型に自動変換されて計算されると言うルールがあるので、変数eはfloat型に変換されてから計算が行われます。
答えはfloat型の計算では小数点以下もきちんと出力してくれますので、2.25になります。

カテゴリー
Java

変数について知ろう

この章では変数について説明します。
変数とは何かしらのデータを入れる箱みたいなものです。
バッグを例に取るとバックには財布やハンカチを入れて持ち運びますが、そのバックに当たるものが変数です。
そして、このバッグに入っている財布やハンカチがデータに該当します。
もしくは、変数とはフロッピーディスクみたいなもので、その中にデータを記憶させておくことが出来ます。
では例をみてみましょう。1 この例で言えば、numberやbookが変数です。
そして、numberには23、bookには芥川龍之介と言うデータを入れています
そして、1 のように記述するとbookやnumberと言う文字がそのまま出力されるのではなく、bookやnumberという変数の中に入っている23と言う数字と芥川龍之介と言う文字列が出力されて、結果は1になります。
ではSystem.out.printlnの中身を見てみましょう。
「book」と「”を”」と「number」と「”冊買う”」を「+」で繋いでいます。
この「+」は計算の加算にも使われますが、文字に対して「+」を使用すると左右の文字列同士を連結する機能を持つようになります。
この文字同士を連結する「+」を文字列連結演算子と言います。
補足ですが、「+」を挟んだ左側を左オペランド、右側を右オペランドと言います。
「+」を使用すると文字列同士を連結すると書きましたが、この例の中のnumberは23と言う数値になっています。
つまり23は文字列ではなくて数値であるのに連結することが出来てしまっています。
理由は「+」の左右オペランドのどちらかが文字列の場合はもう片方も文字列に自動的に変換しているからです。

では、次に変数のルールについて説明します。
まず初めに変数を使うには1というように宣言をしてあげないといけません。
これを「変数の宣言」と言います。1 変数の宣言の構文は上記の通りですが、必ず行の末尾に1を入れてください。
例で言えば以下の部分が変数の宣言です。1 1番前にintという文字が付いていますが、これはデータ型と言われるものです。
データ型については次の章で詳しく説明します。
データ型とは簡単に説明しますとその変数がどのような性質のデータなのかを分類したものです。
上の例で言えばnumberには数字が入るのでintを変数の前に付けます。
intは変数に入れるデータが整数の場合に使います。
Stringは文字列を扱うのですが、これはデータ型ではありません。データ型ではなくStringクラスと言われるものです。
クラスについては後半の章で説明しますので、ここではStringは文字列を扱う時に変数の前に付けるということだけ覚えておいてください。
そして、変数の宣言は1つの変数で一回だけです。
つまり、この例ではnumber変数が3回出てきますが、宣言を行うのは初めのnumber変数だけです。
また、同じ型であればまとめて変数の宣言を行うことが出来ます。1 この例ではa,b,cの変数が同じint型なのでまとめて宣言を行っています。

次は変数へのデータの入れ方について説明します。
1のように宣言をしましたら、次にすることは実際にデータを入れることです。
データを入れる方法は変数とデータの間に「=」を入れます。
「=」を代入演算子と言います。
「=」は数学で使われるイコールと言う意味ではなく、データを変数に入れると言う意味です。
このデータを入れる行為を「代入」と言います。1 上の例では「23」をnumberに代入し、「”芥川龍之介”」をbookに代入しています。
例では変数の宣言とデータの代入を別々に記述していますが、これを以下のように一緒に記述することも出来ます。1 このように変数の宣言とデータの代入を一緒に記述することを「変数の初期化」といいます。

次に変数に名前を付ける際のルールについて説明します。
1つ目は変数名の先頭を数字で始めることはできません。
例えば3bookという名前はつけることはできません。
先頭文字は
「アンダーバー(_)」
「aからz」「AからZ」
から始めます。
2文字目からは
「アンダースコア(_)」
「aからz」「AからZ」、
「数字」
を使うことが出来ます。
2つ目は同じ文字でも大文字と小文字は全く別の変数になります。つまり、 bookとBOOKは全く違う変数になります。
3つ目は予約語を使うことができません。
予約語とはすでにJavaの機能で定義されている単語のことです。
以下の予約語一覧を参考にしてください。予約語は自然に覚えるので、ここでは目を通すだけで結構です。11 4つ目は変数名の先頭は小文字で始めてください。
大文字で書いてもエラーではありませんが、先頭は小文字で書くことが慣習になっています。
5つ目は変数名には入れるデータに関連した名前を付けて誰が見てもわかりやすくしましょう。
例えば入れるデータが本に関連しているのならばbookと、付けます。
6つ目は変数名に使える記号は11だけしか使うことが出来ません。
例えば1のように「@」を使うことができません。
7つ目は違うデータ型であっても同じ変数名は付けることは出来ません。
例えば以下はデータ型が違うだけで同じ変数名を2回使っているのでエラーになります。1
次に変数に入っているデータの変更方法について説明します。
例をみてみましょう。1 結果は以下の通りです。1 同じ変数に再び他のデータを代入し直しますと上書き状態になり、前のデータは失われてしまいます。1 もし、上書きする前に前のデータを残しておきたい場合は、次の例のように別の変数に代入し保存しておきます。
11 では説明をしていきます。1 のようにnumberをnumber2に、bookをbook2に代入します。
そうすれば、11 の箇所でデータを上書きしたとしても、元のデータは失われません。
以下を出力すればわかるように元のデータの1が表示されます。1 結果は以下の通りです。111 しかし、次のように変数の途中で改行するとエラーになりますので注意してください。111 a=b=c=”猫”;のように書くことで、a,b,cの変数にすべて同じデータを一気に入れることが出来ます。
結果は「猫猫猫」になります。

カテゴリー
Java

Javaの基本を知ろう

この章ではJavaの基本について説明します。
では、さっそく、簡単なプログラムを見てみましょう。1 1初めに「クラスの宣言」をしなくてはいけません。
クラスの宣言の形式は以下の通りです。1 classと言う文字の後に半角スペースを空けて、クラス名を記述します。
そして「{」で始まり「}」で閉じますが、この中をブロックと言います。
また、クラス名の先頭は大文字で書きます。
このクラス名はそのままファイル名になるので、どのような内容のプログラムを書いたのかを分かるような名前にしてください。
この例では1になります。
1この形式をメソッドと言います。
例えば以下の文はmainメソッドになります。1 Javaのプログラムはmainメソッドから始まる決まりになっています。
mainは他の名前で代用することができませんので、必ず必要な名前になります。
1の具体的な説明は中盤以降にしますので、ここではmainメソッドからプログラムが始まると覚えてください。
1このことをインデントと言います。
右にずらすことによりmainメソッドの範囲が明確になり、見やすくなります。
またmainメソッドの中で1が右にずれていますが、これもインデントです。
インデントをしなくてもエラーにはなりません。
1 以下のようにインデントをしないと可読性が悪くなりますので、インデントはなるべくしましょう。1 11文字を出力するために使います。
出力させたい文字列は1の中に1のように1で囲って入れてください。
しかし出力する時にはダブルクォート自体は出力されません。
そして、文の終わりは必ず1を付けてください。1 結果は次の通りですが、コマンドプロンプトで出力する方法は後ほど説明します。1 また、以下のようにメソッドの中は何行でも文を書くことが出来ます。
例えば以下の1は2行書いていますが、何行でも書くことが出来ます。1 結果は次の通りです。1 System.out.println()は行の終わりで改行してくれますので、1行ずづ改行されて出力されます。
改行をしたくない場合には次のように書きます。
次の例の1はよく見ると解りますが、printlnのlnの部分が付いていません。
このように書くと行の終わりで改行をしません。1 結果は次の通り、改行しないで出力されます。1 ここでプログラムを実行する方法について説明します。
プログラムの実行結果を確認するにはコマンドプロンプトを使用します。
初めにプログラムを作成して、先ほど説明した通りにC の直下にjavaフォルダを新たに作成して、その中にプログラムを入れます。
Javaファイルの拡張子は1です。
ではコマンドプロンプトを開いてください。
コマンドプロンプトを開きましたら、1と入力します。
これはJavaファイルのある場所まで移動するためです。11 と入力してクリックすると以下の枠の通り、1に移動します。1 次に以下の赤枠の通り1と入力し、エンターキーを押します。
ここではコンパイルを行っています。1 そして、最後に1と入力し、エンターキーを押しますと実行結果が表示されます。1 注意点はプログラムを少しでも修正したのならば必ず改めてコンパイルを行います。
つまり1を実行してから1を実行します。

補足ですが、ここでは「コメント」について説明します。
コメントとはプログラムの意味などを以下の赤枠の形式で書きます。
長いプログラムを書いていると「ここは何のために書いたかな?」など忘れてくるので、そのような時にコメントを書くと便利です。当然ですが、コメントは出力されません。11

カテゴリー
Java

JDKをダウンロードしよう

この章ではJDKをインストールする方法について説明しますので以下の手順で進んでください。1 〇サイトに入りますと以下のアイコンがありますので、これをクリックします。1 クリックしますと以下の画面が表示されるので、自身のwindowsシステムが32bitであるならば「windows×86」、
64bitであるならば「windows×64」を選択します。1 bitの確認方法はwindowsの場合、「コントロールパネル」の中の「システム」の中の以下の箇所で確認します。1 〇「windows×86」「windows×64」のどちらかをクリックしますとwindowsでは画面下で実行するかどうかを聞かれるので「実行」をクリックしてください。1 〇「実行」をクリックしますと以下のダイアログボックスが開きますので次へをクリックしてください。1 〇次へをクリックしますと以下の以下のダイアログボックスが開きますので、次へをクリックしてください。1 〇次へをクリックしますと以下のダイアログボックスが開きますので、しばらく待ちます。1 〇しばらく待っていますと以下のダイアログボックスが開きますので次へをクリックします。1 〇次へをクリックしますとセットアップが始まりますので、しばらく待ちます。1 〇以上でインストールは終了しましたので、完了をクリックしてください。1 〇インストールは終わりましたが、次は「PATHの設定」をしますので、以下の手順で進んでください。
Windowsの環境であれば「コントロールパネル」→「システム」→「システムの詳細設定」の順でクリックしてください。
そうすると「システムのプロパティ」が開きますので、その中の「詳細設定」をクリックしてますと「環境変数」という項目がありますので、ここをクリックします。1 〇「環境変数」をクリックしますと以下のダイアログボックスが開きますので「Path」をクリックしてから「編集」をクリックします。1 「編集」をクリックしますと以下のダイアログボックスが開きますので、「変数値」の末尾に1を追加します。
先頭の「;」を忘れないでください。
「jdk1.7.0」の部分はJdkがバージョンアップすると変わります。
追加しましたらOKをクリックします。1 「Path」が無い場合には「新規」をクリックして以下のように作成(先ほどのURLの先頭の「;」を外す)して「OK」をクリックします。1 〇次にコマンドプロンプトを開いて、以下のように「javac」と入力します。
コマンドプロンプトはwindowsであれば「スタート」→「すべてのプログラム」→「アクセサリ」の中にあります。1 これで上の画面のように表示されたら正常にJDKのダウンロードがされていることを意味します。
〇これから作るプログラムはC の下に新たなjavaフォルダを作成して、その中にプログラムを入れていきます。フォルダ名は自由に決めてください。1