初心者がプログラミングを学ぶときに抑えるべきポイント(3)

プログラミング、サーバー、ネットワーク、IT用語、ハマったときのトラブルシューティングなど様々なIT関連の話題をひたすら書いていく技術ブログです。

2017年2月9日木曜日

初心者がプログラミングを学ぶときに抑えるべきポイント(3)


前回に引き続き、どのプログラミング言語でも大切になってくる抑えるべき概念を見ていきましょう。

演算子

演算子とは計算の時に使用する「+」「-」などの記号のことです。どのプログラミング言語でも同じような記号を使って計算をします。基本的にはまず以下の5つは覚えておきましょう。

算術演算子

「+」・・加算(足し算)
例: 4 + 5 ⇨ 9

「-」・・減算(引き算)
例: 7 - 3 ⇨ 4

「*」・・乗算(掛け算)
例: 4 * 5 ⇨ 20

「/」・・除算(割り算)
例:4.6 / 2 ⇨ 2.3
例:9 / 2 ⇨ 4(整数演算では商)

「%」・・乗余(割り算の余り)
例: 7 % 2 ⇨ 1

下記の例は乗算演算子です。20と表示されます。他の演算子も試してみましょう。



ここで注意が必要なのは除算「/」です。割り算を行う時に、整数同士で割り算を行うと商を計算します。 9 / 2が4と評価されてしまうことが困ることが多いと思います。その場合は「9.0 / 2」か「9 / 2.0」のようにどちらかの数字を少数にすることで解決します。

文字列結合演算子

「+」を使うことで文字列と文字列を結合することができます。プログラミング言語によっては違う方法でも結合できます。



ただし、Javaに限って言うと、「+」演算子で文字列を結合することは、ほとんどの状況ではよろしくないことが多いです。少し難しい話になるので、今はそういうことがあるという程度で覚えておきましょう。もちろん、勉強のため使うのは全く問題ありません。

代入演算子

「=」・・右辺を左辺に代入
「+=」・・変数aが5を持つとして「a += 2」は「a = a + 2」と同じ。つまりaは7になる。
「-=」・・変数aが5を持つとして「a -= 2」は「a = a - 2」と同じ。つまりaは3になる。
「*=」・・変数aが5を持つとして「a *= 2」は「a = a * 2」と同じ。つまりaは10になる。
「/=」・・変数aが5を持つとして「a /= 2」は「a = a / 2」と同じ。つまりaは2になる。
「%=」・・変数aが5を持つとして「a %= 2」は「a = a % 2」と同じ。つまりaは1になる。
「+=」・・変数aが「おはよう」を持つとして「a += "ございます"」は「a = a + "ございます"」と同じ。つまりaは「おはようございます」になる。




プログラミングによってはこちらも少しかたちは違うかもしれないが、このような概念がある。

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

インクリメント演算子は値を1ずつ増やし、デクリメント演算子は値を1ずつ減らしていきます。代入演算子の例でいけば、「a += 1」とか「a = a + 1 」は可能ですが、こちらの方がすっきり書くことができます。使いどころとしてはforループなどのループ処理でしようすることが多いでしょう。

「++」・・値を1増やす
「--」・・値を1減らす



上記は1〜10が表示されます。下記のプログラムは10から5まで表示されます。iの初期値が10でループ処理ごとに1ずつ減っているからです。
forループに関してはこちらの記事で紹介しているので細かい説明は省略します。



また、この演算子は変数などの前にも付けることができます。

a++
++a

この違いは変数a++が何らかの処理に使われた後に+1します。逆に++aは+1してから何らかの処理を行います。

a++の場合、下記のプログラムは5が表示されます。


++aの場合、変数answerは6になっています。


上記の2つのプログラムにおいて、何らかの処理は「代入」になります。a++は代入した後に+1、++aは代入する前に+1することになるので、このような違いが出てきます。

プログラミング言語によっていはインクリメント演算子やデクリメント演算子がないこともあります。その場合は「a += 1」や「a = a + 1」とすることになるでしょう。

Javaのデータ型

今までJavaで説明していたので、少しだけデータの型についてお話ししましょう。よく型付き言語とか言われたりしますが、その「型」とは何でしょう?実は今までのプログラムで説明してこなかったのですが、既に以前に記事にもこの記事にもプログラムの中で型は使われています。こちらのプログラムでお話ししましょう。



今まで変数の左側についているintや文字列を変数に入れる時に左側に付いているStringって何だろうと疑問に思った方も多いと思います。まさにそれが型です。型は様々ありますがまずは下記の9個を覚えておけばよいでしょう。

分類 型名 格納するデータ 変数の宣言例 利用頻度
整数 long 大きな整数 long JapanesePopulation 低い
整数 int 普通の整数 int salary 最高
整数 short 小さい整数 short age 低い
整数 byte さらに小さい整数 byte family 低い
小数 double 普通の小数 double pi //円周率 高い
小数 float ざっくりとした小数 float height // 身長 低い
真偽値 boolean trueかfalse boolean isPublished //(記事などが)公開されているかどうか 高い
文字列 String 文字の並び String firstName 最高

Javaでプログラミングを実装するとintとStringが圧倒的に多いですね。intの説明で普通の整数と書いていますが、intがカバーする数値の範囲はざっくり-21億〜21億までありますので大半の数値はintで十分です。JavaのStringは厳密に言うと少し他の型とは違うのですが、今は文字列の型はStringとだけ覚えていればOKです。

型があると何が嬉しいのか?

型が付くと、代入できるデータが制限されてしまいます。例えばintに文字列を代入しようとしたらエラーになります。下記のプログラムは3行目でエラーになります。



これは何がメリットなのでしょうか?私が考える型が付いていることの一番のメリットは、データ型を制限することによって、例えばintの場合、変数の中身が数値であることが保証されるというこです。これはプログラミングをする上で非常に助かります。

私の経験則ですがプログラミングでエラーを引き起こす一番の原因は、変数に予期せぬデータが入ってくることです。実はJavaは型付き言語ですが、PHPやRubyといったスクリプト言語は特に変数には型を付けて宣言しません。つまり、何が入っているのか分からない状態なのです(もちろん、変数の中身を確認しながらプログラミング(デバッグ(debug)と呼びます)をしていくのですが)。変数はデータがいろいろ変わってくるので、そこが一番エラーを引き起こすことになります。そこに制限をかけられることは大きなメリットです。

◯このシリーズの一覧はこちら



最近の投稿