この章ではインクリメント演算子とデクリメント演算子について説明します。
インクリメント演算子を加算子、デクリメント演算子を減算子とも言います。
インクリメント演算子とは変数の値に1を加算すると言う意味でまたはのように記述します。
x++ を後置インクリメント演算子と言います。
++xを前置インクリメント演算子と言います。
デクリメント演算子とは変数の値を1だけ減算すると言う意味でまたはのように記述します。
x- -を後置デクリメント演算子と言います。
– -xを前置デクリメント演算子と言います。 では例をみてみましょう。 number = number + 1;は右辺であるnumber + 1の結果である3を計算してから左辺のnumberに代入しています。
++number2;は2に1を足しているので3になります。
number3++;も2に1を足しているので3になります。
– -number4は2から1を引いているので1になります。
number5- – も2から1を引いているので1になります。
このように単独で前置デクリメント演算子や後置インクリメント演算子を使う時には結果は同じになります。
しかし、式の中で使用すると結果が違ってきますので、以下の例を見てみましょう。 num=++number+1;はnumberの値がインクリメントで1加算されてから、さらに1を足してnumに代入されますのでの結果は4になります。
この時にはnumberはインクリメントで3になっているのでの結果は3になります。
num2=number3++ +1;はを先に計算してnum2に結果を代入してから、number3に1を足しますのでは3になります。
つまり、最初の計算では「++」は無視されます。
num2に結果を代入してからnumber3に1が加算されますのでは3になります。
前置デクリメント演算子と後置デクリメント演算子も原理は同じなので説明は省きます。
月: 2015年5月
この章では複合演算子について説明します。
複合演算子とは算術演算子と代入演算子が複合して結びついている演算子のことをいいます。
例えば本来と書かなくてはいけないところ、のように短縮して書くことが出来ます。
複合演算子はaとbを計算したものをaに代入すると言う意味です。 では例をみてみましょう。 number1+= 8;はと同じ意味になります。
右辺にあるnumber1+8を計算してから、number1にその結果を代入してます。
number2 -= 8;はと同じ意味になります。
右辺を計算してから左辺に代入しています。
number3 *= 8;はと同じ意味になります。
右辺を計算してから左辺に代入しています。
number4 /= 3;はと同じ意味になります。
右辺を計算してから左辺に代入しています。
算術演算子について知ろう
この章では算術演算子について説明します。
算術演算子とは
「+」「-」「*」「/」「%」
のことを言います。 では例をみてみましょう。 以下のように計算式を書くことでプログラムで計算することが出来ます。 〇1つの式の中で複数の算術演算子を使う場合、計算の優先順位はよりの方が高いので、掛け算から先に計算してから、足し算が行われます。
優先順位を変えたい場合はのように優先させたい箇所にカッコを入れてください。
〇文字列と計算式を混在させて書くときには以下のように括弧を付けてください。 以下の例のように括弧を付けないと初めにが結び付きます。
そしてその後に「b」が結びつくのでになって、計算が出来なくなってしまいます。
しかし、括弧を付けるのは足し算もしくは引き算の場合のみです。 以下のように掛け算もしくは割り算の場合には括弧を付ける必要はありません。 なぜなら、のほうが優先順位が高いので、括弧を付けないでも、から計算してくれます。
優先順位とは普通の計算式でも掛け算の方が足し算より先に計算が行われるようにJavaの演算子同士でも優先順位があります。
データ型について知ろう
この章ではデータ型について説明します。
データ型とは変数に入れるデータがどのような性質のデータなのかを分類したものです。 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がよく使われます。 浮動小数点数型はdouble型とfloat型の2種類が有ります。
double型は8バイト=64ビットのサイズで倍精度浮動小数点数型と呼ばれています。 基本的には変数には指定したデータ型のデータしか入れてはいけません。
しかし、「ある変数」に違うデータ型の変数を入れても精度が落ちないと判断すれば違うデータ型の変数でも入れることが出来ます。
精度が落ちないとは小さいサイズのデータ型変数を大きいサイズのデータ型変数に代入する時です。
この時に型の変換が行われます。
例えばintの変数をlongの変数に代入したり、intの変数をdoubleの変数に代入することがこれに当たります。
型の大きさは以下の通りになります。 一番右のdoubleが一番大きいサイズになります。
注意点としてはchar型からbyte型やshort型には自動変換できません。
では例をみてみましょう。 例のようにint型の変数をdouble型の変数に代入するとdouble型の変数に自動変換されます(補足ですが、このように変数に変数を入れることができます)。
結果、int型の変数の値である「10」はdouble型の変数の値「10.0」に自動変換されます。
また、int型の変数の値をlong型の変数に代入すると、long型の変数に変換されます。
結果は同じ10ですが、型の変換が行われています。
次は計算での型変換です。
式の中に異なる型が混ざっている時は小さい型が大きい型に自動変換されてから計算されます。
例えば以下の例の場合はint型の変数kがdouble型に変換されるので「2.0」になりますので、「2.0+2.3」という計算がされます。 基本的には大きい型から小さい型への変換、例えばlong型変数をint型変数に代入するなどは禁止していますが、どうしても大きい型から小さい型への変換を行いたい場合にはキャスト演算子を使って強制的に型変換を行う方法があります。 ではキャスト演算子の例を見てみましょう。 では解説をしていきます。 =>ここでの計算はint型同士の割り算の結果をint型 w に代入しています。
int型は整数型なので、小数点以下は表示されず、結果は2になります。
次は以下の箇所の説明をします。 =>(float)iの部分はというキャスト演算子を使ってint型 iをfloat型に変換しています。
式の中に異なる型が混ざっている時は小さい型が大きい型に自動変換されて計算されると言うルールがあるので、変数eはfloat型に変換されてから計算が行われます。
答えはfloat型の計算では小数点以下もきちんと出力してくれますので、2.25になります。
この章では変数について説明します。
変数とは何かしらのデータを入れる箱みたいなものです。
バッグを例に取るとバックには財布やハンカチを入れて持ち運びますが、そのバックに当たるものが変数です。
そして、このバッグに入っている財布やハンカチがデータに該当します。
もしくは、変数とはフロッピーディスクみたいなもので、その中にデータを記憶させておくことが出来ます。
では例をみてみましょう。 この例で言えば、numberやbookが変数です。
そして、numberには23、bookには芥川龍之介と言うデータを入れています。
そして、 のように記述するとbookやnumberと言う文字がそのまま出力されるのではなく、bookやnumberという変数の中に入っている23と言う数字と芥川龍之介と言う文字列が出力されて、結果はになります。
ではSystem.out.printlnの中身を見てみましょう。
「book」と「”を”」と「number」と「”冊買う”」を「+」で繋いでいます。
この「+」は計算の加算にも使われますが、文字に対して「+」を使用すると左右の文字列同士を連結する機能を持つようになります。
この文字同士を連結する「+」を文字列連結演算子と言います。
補足ですが、「+」を挟んだ左側を左オペランド、右側を右オペランドと言います。
「+」を使用すると文字列同士を連結すると書きましたが、この例の中のnumberは23と言う数値になっています。
つまり23は文字列ではなくて数値であるのに連結することが出来てしまっています。
理由は「+」の左右オペランドのどちらかが文字列の場合はもう片方も文字列に自動的に変換しているからです。
では、次に変数のルールについて説明します。
まず初めに変数を使うにはというように宣言をしてあげないといけません。
これを「変数の宣言」と言います。 変数の宣言の構文は上記の通りですが、必ず行の末尾にを入れてください。
例で言えば以下の部分が変数の宣言です。 1番前にintという文字が付いていますが、これはデータ型と言われるものです。
データ型については次の章で詳しく説明します。
データ型とは簡単に説明しますとその変数がどのような性質のデータなのかを分類したものです。
上の例で言えばnumberには数字が入るのでintを変数の前に付けます。
intは変数に入れるデータが整数の場合に使います。
Stringは文字列を扱うのですが、これはデータ型ではありません。データ型ではなくStringクラスと言われるものです。
クラスについては後半の章で説明しますので、ここではStringは文字列を扱う時に変数の前に付けるということだけ覚えておいてください。
そして、変数の宣言は1つの変数で一回だけです。
つまり、この例ではnumber変数が3回出てきますが、宣言を行うのは初めのnumber変数だけです。
また、同じ型であればまとめて変数の宣言を行うことが出来ます。 この例ではa,b,cの変数が同じint型なのでまとめて宣言を行っています。
次は変数へのデータの入れ方について説明します。
のように宣言をしましたら、次にすることは実際にデータを入れることです。
データを入れる方法は変数とデータの間に「=」を入れます。
「=」を代入演算子と言います。
「=」は数学で使われるイコールと言う意味ではなく、データを変数に入れると言う意味です。
このデータを入れる行為を「代入」と言います。 上の例では「23」をnumberに代入し、「”芥川龍之介”」をbookに代入しています。
例では変数の宣言とデータの代入を別々に記述していますが、これを以下のように一緒に記述することも出来ます。 このように変数の宣言とデータの代入を一緒に記述することを「変数の初期化」といいます。
次に変数に名前を付ける際のルールについて説明します。
1つ目は変数名の先頭を数字で始めることはできません。
例えば3bookという名前はつけることはできません。
先頭文字は
「アンダーバー(_)」
「aからz」「AからZ」
から始めます。
2文字目からは
「アンダースコア(_)」
「aからz」「AからZ」、
「数字」
を使うことが出来ます。
2つ目は同じ文字でも大文字と小文字は全く別の変数になります。つまり、 bookとBOOKは全く違う変数になります。
3つ目は予約語を使うことができません。
予約語とはすでにJavaの機能で定義されている単語のことです。
以下の予約語一覧を参考にしてください。予約語は自然に覚えるので、ここでは目を通すだけで結構です。 4つ目は変数名の先頭は小文字で始めてください。
大文字で書いてもエラーではありませんが、先頭は小文字で書くことが慣習になっています。
5つ目は変数名には入れるデータに関連した名前を付けて誰が見てもわかりやすくしましょう。
例えば入れるデータが本に関連しているのならばbookと、付けます。
6つ目は変数名に使える記号はとだけしか使うことが出来ません。
例えばのように「@」を使うことができません。
7つ目は違うデータ型であっても同じ変数名は付けることは出来ません。
例えば以下はデータ型が違うだけで同じ変数名を2回使っているのでエラーになります。
次に変数に入っているデータの変更方法について説明します。
例をみてみましょう。 結果は以下の通りです。 同じ変数に再び他のデータを代入し直しますと上書き状態になり、前のデータは失われてしまいます。 もし、上書きする前に前のデータを残しておきたい場合は、次の例のように別の変数に代入し保存しておきます。
では説明をしていきます。 のようにnumberをnumber2に、bookをbook2に代入します。
そうすれば、や の箇所でデータを上書きしたとしても、元のデータは失われません。
以下を出力すればわかるように元のデータのが表示されます。 結果は以下の通りです。 しかし、次のように変数の途中で改行するとエラーになりますので注意してください。 a=b=c=”猫”;のように書くことで、a,b,cの変数にすべて同じデータを一気に入れることが出来ます。
結果は「猫猫猫」になります。
Javaの基本を知ろう
この章ではJavaの基本について説明します。
では、さっそく、簡単なプログラムを見てみましょう。 初めに「クラスの宣言」をしなくてはいけません。
クラスの宣言の形式は以下の通りです。 classと言う文字の後に半角スペースを空けて、クラス名を記述します。
そして「{」で始まり「}」で閉じますが、この中をブロックと言います。
また、クラス名の先頭は大文字で書きます。
このクラス名はそのままファイル名になるので、どのような内容のプログラムを書いたのかを分かるような名前にしてください。
この例ではになります。
この形式をメソッドと言います。
例えば以下の文はmainメソッドになります。 Javaのプログラムはmainメソッドから始まる決まりになっています。
mainは他の名前で代用することができませんので、必ず必要な名前になります。
の具体的な説明は中盤以降にしますので、ここではmainメソッドからプログラムが始まると覚えてください。
このことをインデントと言います。
右にずらすことによりmainメソッドの範囲が明確になり、見やすくなります。
またmainメソッドの中でが右にずれていますが、これもインデントです。
インデントをしなくてもエラーにはなりません。
以下のようにインデントをしないと可読性が悪くなりますので、インデントはなるべくしましょう。 は文字を出力するために使います。
出力させたい文字列はの中にのようにで囲って入れてください。
しかし出力する時にはダブルクォート自体は出力されません。
そして、文の終わりは必ずを付けてください。 結果は次の通りですが、コマンドプロンプトで出力する方法は後ほど説明します。 また、以下のようにメソッドの中は何行でも文を書くことが出来ます。
例えば以下のは2行書いていますが、何行でも書くことが出来ます。 結果は次の通りです。 System.out.println()は行の終わりで改行してくれますので、1行ずづ改行されて出力されます。
改行をしたくない場合には次のように書きます。
次の例のはよく見ると解りますが、printlnのlnの部分が付いていません。
このように書くと行の終わりで改行をしません。 結果は次の通り、改行しないで出力されます。 ここでプログラムを実行する方法について説明します。
プログラムの実行結果を確認するにはコマンドプロンプトを使用します。
初めにプログラムを作成して、先ほど説明した通りにC の直下にjavaフォルダを新たに作成して、その中にプログラムを入れます。
Javaファイルの拡張子はです。
ではコマンドプロンプトを開いてください。
コマンドプロンプトを開きましたら、と入力します。
これはJavaファイルのある場所まで移動するためです。 と入力してクリックすると以下の枠の通り、に移動します。 次に以下の赤枠の通りと入力し、エンターキーを押します。
ここではコンパイルを行っています。 そして、最後にと入力し、エンターキーを押しますと実行結果が表示されます。 注意点はプログラムを少しでも修正したのならば必ず改めてコンパイルを行います。
つまりを実行してからを実行します。
補足ですが、ここでは「コメント」について説明します。
コメントとはプログラムの意味などを以下の赤枠の形式で書きます。
長いプログラムを書いていると「ここは何のために書いたかな?」など忘れてくるので、そのような時にコメントを書くと便利です。当然ですが、コメントは出力されません。
JDKをダウンロードしよう
この章ではJDKをインストールする方法について説明しますので以下の手順で進んでください。 〇サイトに入りますと以下のアイコンがありますので、これをクリックします。 クリックしますと以下の画面が表示されるので、自身のwindowsシステムが32bitであるならば「windows×86」、
64bitであるならば「windows×64」を選択します。 bitの確認方法はwindowsの場合、「コントロールパネル」の中の「システム」の中の以下の箇所で確認します。 〇「windows×86」「windows×64」のどちらかをクリックしますとwindowsでは画面下で実行するかどうかを聞かれるので「実行」をクリックしてください。 〇「実行」をクリックしますと以下のダイアログボックスが開きますので次へをクリックしてください。 〇次へをクリックしますと以下の以下のダイアログボックスが開きますので、次へをクリックしてください。 〇次へをクリックしますと以下のダイアログボックスが開きますので、しばらく待ちます。 〇しばらく待っていますと以下のダイアログボックスが開きますので次へをクリックします。 〇次へをクリックしますとセットアップが始まりますので、しばらく待ちます。 〇以上でインストールは終了しましたので、完了をクリックしてください。 〇インストールは終わりましたが、次は「PATHの設定」をしますので、以下の手順で進んでください。
Windowsの環境であれば「コントロールパネル」→「システム」→「システムの詳細設定」の順でクリックしてください。
そうすると「システムのプロパティ」が開きますので、その中の「詳細設定」をクリックしてますと「環境変数」という項目がありますので、ここをクリックします。 〇「環境変数」をクリックしますと以下のダイアログボックスが開きますので「Path」をクリックしてから「編集」をクリックします。 「編集」をクリックしますと以下のダイアログボックスが開きますので、「変数値」の末尾にを追加します。
先頭の「;」を忘れないでください。
「jdk1.7.0」の部分はJdkがバージョンアップすると変わります。
追加しましたらOKをクリックします。 「Path」が無い場合には「新規」をクリックして以下のように作成(先ほどのURLの先頭の「;」を外す)して「OK」をクリックします。 〇次にコマンドプロンプトを開いて、以下のように「javac」と入力します。
コマンドプロンプトはwindowsであれば「スタート」→「すべてのプログラム」→「アクセサリ」の中にあります。 これで上の画面のように表示されたら正常にJDKのダウンロードがされていることを意味します。
〇これから作るプログラムはC の下に新たなjavaフォルダを作成して、その中にプログラムを入れていきます。フォルダ名は自由に決めてください。
テキストエディタをダウンロードしよう
Javaのプログラムを書くにはテキストエディタが必要ですので、これからサクラエディタというエディタをダウンロードします。
以下の手順でインストールしてください。
〇以下のサイトに入ります 〇サイトに入りましたら、以下のDownloadをクリックしてください。 〇次に以下の画面に移りますので、Downloadをクリックしてください。 〇 Downloadをクリックするとgoogleの場合、左下に以下の画面が現れますので、クリックしてください。 〇クリックしますとインストールが始まりますので、次へをクリックしてください。 〇次へをクリックしますと以下のダイアログボックスが開きます。
ここではサクラエディタのインストール先を指定するのですが、このまま次へをクリックします。 〇次へをクリックしますと以下のダイアログボックスが開きますので、このままの状態で次へをクリックしてください。 〇次へをクリックしますと以下のダイアログボックスが開きます。
ここでもこのままの状態で次へをクリックしてください。 〇次へをクリックしますと以下のダイアログボックスが開きます。
ここでもこのままの状態で次へをクリックしてください。 〇次へをクリックしますと以下のダイアログボックスが開きます。
以下の赤で囲まれている箇所は任意で選択してください。
選択しましたら次へをクリックしてください。 〇次へをクリックしますと以下のダイアログボックスが開きますので、インストールをクリックしてください。 〇これでインストールが終わりましたので、完了をクリックしてください。
Javaは1995年にSun Microsystems社が開発したプログラミング言語で、様々なアプリケーションで使われています。
Java とJavaScript は名前が似ていますが、まったく違う言語です。
Javaの特徴はオブジェクト指向のプログラミングが可能な言語です(オブジェクト指向については後ほど説明します)。
Javaのプログラムを出力するまでの大まかな流れを説明します。
何らかのプログラムを書いたと仮定して、そのプログラムが書かれたファイルをソースファイルと言います。
しかし、このままではプログラムは動きません。
動かすためにはコンパイルと言う作業が必要になります。
コンピュータはそのままではプログラムを理解することが出来ないので、理解できるようにプログラムを翻訳する作業を行わなくてはいけません。
この作業をコンパイルと言います。
そして、ソースファイルをコンパイルした結果出来るのが、クラスファイルです。そして、そのクラスファイルを実行すると結果を出力することが出来ます。
次にJavaでプログラムを行うための準備をします。
Javaのプログラムを書くためにはテキストエディタとJDKをインストールすることが必要です。
JDKとはJava Developers Kitの略でコンパイルを行ってくれるソフトウェアです。次の章からこの2つのソフトをインストールする方法について説明していきます。
ファイルの操作について知ろう
この章ではC言語におけるファイルの取り扱い方法について学習します。
これまではprintf関数などを使って、文字列や計算結果を画面に出力していましたが、その処理が終われば、データは失われてしまいます。
そこで、そのようなデータはファイルに保存しておけば後で確認したい時に便利です。
C言語におけるファイルの取り扱いの流れを説明します。
(1) ファイルをオープンします
(2)ファイルの読み書きをします
(3)ファイルをクローズします
この順序でファイルを操作を行います。
では例をみてみましょう。 ではファイルをオープンする手順について説明します。
初めに以下の構文でファイル構造体のポインタを作ります。この例では以下の箇所です。 ファイル構造体はファイルに関する入出力などの機能を備えています。
次に操作したいファイルを以下の構文でオープンします。 fopen関数を実行すると、ファイル情報を持つFILE型のポインタ(ファイルポインタといいます)が返されます。
そして、このfopen関数をファイル構造体の変数に代入します。 オープンモードではファイルをどのような状態で開きたいのかを設定します。
この例ではwを使っていますが、このモードを使うとファイルの中身を上書きして、ファイルが無い時は新規作成してくれます。
wモードであればこの例の「net.txt」と言うファイルが自身のフォルダに無くても、自動的に作ってくれます。次の表を参考にしてください。
次にファイルを読み書きする方法について説明します。
ファイルに書き込むにはfprintf関数を使います。
fprintf関数はファイルポインタで指定したファイルに変換指定文字を使ってデータを書き込みます。 この例では以下の箇所でdouble型のiのデータを変換指定文字であるの通りにファイルに書き込んでいます。
次はファイルをクローズする方法について説明します。
ファイルを開いた後には閉じなくてはいけません。
その時に使うのがfclose関数です。
次は以下の箇所の説明します。 NULLと言う見慣れない文字がありますが、ファイルが何らかの理由でオープンできなかった時にfopen関数がこのNULLを返します。 exit関数を使用する時にはの記述が必要です。
結果は「net.txt」に変数iの値である8.1が書き込まれます。
次の例ではscanfで読み込んだデータをファイルに書き込みます。
while文の中にEOFという箇所がありますが、これはキーボードでを押すと返される値です。
EOFの前に「!」が付いているので、を押さない間は入力する行為を繰り返すという意味になります。 気を付けることは以下の箇所で「-6」という箇所がありますが、マイナス指定をするとファイルの中のデータを左詰めにするという意味になります。ファイルに書き込むときには左詰めで入力するのが基本です。 左詰めでファイルにデータを入れているので、「net.txt」は以下のようになります。 次は「net.txt」に書き込んだデータを取り出してみましょう。 ファイルからデータを読み込むにはfscanf関数を使用します。 このfscanf関数は書式指定文字に従ってデータを取り出します。
この例では以下の箇所です(スペースの都合でwhileの条件式を2行で書いていますが、1行で書いてもいいです)。 ここでEOFが出てきますが、の意味はファイルの終端までデータを読み込むと言う意味になります。
fscanf関数はファイルの終端になるとEOFを返します。
読み込む時にはfopen関数のオープンモードはrになります。
次の例はfputs関数でデータをファイルに書き込む方法について説明します。 fputs関数はファイルポインタで指定したファイルへ1行ずつ文字列を書き込みます。 fputs関数はファイルに1行分書き込む関数です。
結果は以下の通り、ファイルに書き込まれます。 注意点としては以下のように改行を入れないと1行でファイルに書き込まれるので気を付けてください。
もちろん、初めから1行で書き込む意図があるのならばは入れる必要はありません。 結果は以下の通りです。
次の例は「net.txt」に書き込んだテキストファイルから指定した文字サイズだけを読み込むプログラムです。 ファイルから指定した文字サイズを読み込むにはfgets関数が必要です。 fgetsはファイルポインタで指定したファイルから、指定した文字の数だけを読み込んで、配列に代入します。
そして、読み取るものが無くなるとNULLを返すので、NULLになったらwhile文を終了します。
読み取るときにはのように読み取りモードをrに指定してください。
次の例は「net.txt」から1文字ずつ読み込むプログラムです。 fgetc関数はファイルポインタで指定したファイルから1文字読み取ります。 ここでは読み込んだ1文字をchar型の変数に入れてputcharで1文字ずつ出力しています。
fgetcは読み込みに成功すると、その読み込んだ1文字を返し、ファイルの終わりまで読んだ場合は、EOFを返します。