*この記事にはアフィリエイトリンクが含まれてます。
どうも!Kzumaです! 今回の記事はアウトプット用です! 2週間でブロンズの基礎ができちゃうって本がAmazon Kindle unlimitedで見つけたので少し勉強しようと読み始めました!
章が1日で区切られているので3日学習して、それのアウトプットを記事にして1500字の記事を作るのが今回の目標です!
今回の勉強するのに使う本はこれです!
2週間でJava SE Bronzeの基礎が学べる本
私に合わなかったら次の本を探してみたいと思います! なんなら、Javaが合わなかったら次の言語に変える予定ですwww プログラミングの基礎は大体同じですからね
目次
Java学習1日目!
Javaを勉強しようと思ったのは、大学でやったがろくに勉強しなかった分野で、時間が確保できる環境があるし、Amazon Kindle unlimitedの無料体験中でお金も掛からないから始めました!
大学時代にちゃんとやっておけば良かったんですけど、生活していくことに全振りしちゃってましたから、本当にもったいない事をしましたよ。
身の丈話はこの辺にして、学んだことをまとめていきましょう!
java環境を構築しよう!
もうすでに大学のPCにその環境があったからそれを活用することにしました。 エクスペリエンスとかそんな名前だったと思います。
使い方も忘れちゃったのでおいおい使い方を思い出していきます。
とりあえず、一冊読んで流れを把握して行こうかと思ってます。バイトの空き時間でも読み進めて行こうと思っていますから、一度読み終えてから、2度目から例に乗っているプログラムを実際に動かして視覚的に理解できるようにしたいですね。
変数、データ型、演算子をまとめる
プログラミングといえば、変数、データ型、演算子と聞き慣れない言葉がたくさん出てきて億劫になることありますよねぇ。
それを表にまとめて一目で見れるようにしておけば、「あれ?これなんだっけ?」って時に役に立つと思うんですよ!きっとね!
変数宣言
データの保管場所にアクセスするとき、メモリアドレスじゃ人に理解できる形になっていないので、それをわかりやすくすために変数名をつける
例)
よく使うデータ型一覧
分類 | データ型 | データ形式 |
---|---|---|
整数型 | int | 32bit |
long | 64bit | |
浮動小数点数型 | double | 64bit(浮動小数点) |
文字列 | char 1文字限定 | 文字(16bit Unicode) |
string 複数文字ok | 文字(16bit Unicode) |
だいたい使う型はこんなとこですかね。 何かを計算したい時は、int,doubleが中心に使われますね。
表の中を何かの基準でソートするときに使われるのがStringとCharですかね。
演算子
種類 | 使用例 | 説明 |
---|---|---|
+ | A+B | 足し算、文字列連結 |
– | A-B | 引き算 |
* | A*B | 掛け算 |
/ | A/B | 割り算 |
% | A%B | 剰余算 |
算術演算子にも数学のように優先順位があるんですよね。 *,/,%,+,-の順で左側の方が優先度が高いです。
カッコ()で優先順位が変えれるところも数学と同じですね。
プログラムの処理は基本的に左から処理されていくことも忘れずにね。
Java学習2日目!
2日目は条件分岐です!
これで扱えるプログラムの幅が一気に広がっていきます。いつでも使うので絶対に覚えておかなきゃいけない項目ですね。
読みやすいコードを書くにはルールがあるんです。
それが構造化プログラミングなんです。 順次、分岐、反復の三つの流れが現在の主流になってます!
実際どうやってプログラムを分岐させるかというと、if文やswitch文を使って分岐させていくんですよね。
if文は条件に一致するか、しないかで処理を実行する構造になっています。 else,elseifは最初の処理で一致しなかった時に実行されるプログラムを書く用ですね。
比較演算子 一覧
演算子 | 意味 | 使用例 | 説明 |
---|---|---|---|
> | より大きい | A > B | AがBより大きければ真 |
>= | 以上 | A >= B | AがB以上なら真 |
< | より小さい | A < B | AがBより小さいなら真 |
<= | 以下 | A <= B | AがB以下の時は真 |
== | 等しい | A == B | AとBが等しい時は真 | != | 等しくない | A != B | AとBが等しくなければ真 |
*注意
真 = true、偽 = false
例文もつけておきますね
条件式にも色々あるんですよね。論理演算子を組み合わせて条件を増やせるんです。
条件式だけではそれだけしか出来ないんですけど、論理演算式を合わせれば複数記述できるようになるんですね。
論理演算子 一覧
演算子 | 意味 | 使用例 | 説明 |
---|---|---|---|
& | 論理積 | A & B | AとBが両方とも真なら真である |
| | 論理和 | A | B | AかBの少なくとも1つが真なら真である |
! | 否定 | !A | Aが真の時は偽、Aが偽の時は真 反転させるイメージ |
実際にどうゆうところで使うかというと、よく模試の判定とかに使われますね。知らないけどw
みたいな感じで複数の条件で合わせてコードを短縮できるイメージを持ってますね。
入力した点数が範囲内か範囲外かを判定するプログラムですね。
&の論理積があるんで両方の条件式が一致しない限りelsの処理が実行されるんですよ。
この本にわかりやすく一目で見れる表があったので下に貼っておきますね
出典:2週間でJava SE Bronzeの基礎が学べる本
論理和の場合はこんな感じに記述するんですね
論理和は両方一致しない限りは真を返してくれるんですよね
if文の中にi++のインクリメントがあるんですけど、ショートサーキット演算子って言われるものを使えば外に出せて条件文が少しスッキリさせる事はできるんですけど、実際に書く量は変わらないんですよね
if(a == 1 || i < 5){ .....省略 }
こんな感じにもかけるみたいですね。
switch分
switch文は範囲が狭い条件の時に輝く文ですね。
某RPGで使われている使用風にすれば楽しめて学べると思うんです。
ここでbreak;を入れ忘れると全部のcase文を実行してよくわからん結果が返って来てしまうんで注意です。
1−4以外の入力がされると実行しても結果が返ってこないんですけど、この文を
System.out.println(“1−4で入力し直してください”);
加えてあげれば、結果が表示されます。
本当に発想でどんなことも出来そうに思えるのがプログラムなんですけど、それを実現させるのが難しいんですよねぇ。
私のつまずきPoint
私はなぜか大なり、小なりがごっちゃになっちゃう時があるんでこの表を頭にぶち込まなきゃだめですね。
なぜか不等式には苦手意識があるんですよね。なんとかしなければいけませんね。
if文で論理演算子を加えて複数の条件分をカバーできるのは良いんですけど、さらにややこしくなって嫌になりますねぇ。
まだプログラミング的な考えが出来てないからしょうがないんですけど、少しずつ慣れていきたいと思います!
2日目はここまで! 3日目へ行こう!
Java学習3日目!
3日目はついに、よく「無限ループって怖くね?」って言われる元ネタの繰り返し構文です!
for文とwhile文ですよ!ついでにdo-while文も載っけますね
ここからポイントと例文を載っけて補足を足していく感じで書いて行こうかと思います。
for文
・初期化式、条件式、遷移式は省略できるがセミコロンは書かなきゃだめです。
・二重ループは、分解して読み解こう。 内側はその意味で置き換えるとわかりやすい。
例文
実行結果は、0−10までの数値を出してくれます。
次が二重ループですね。 実際に二重ループを使ったのは、アスタリスク*でなんか図形を作るくらいでしたね。
**
***
こんな感じに表示させるだけでふーんで感じなんですけど、後々の配列を扱うときに活躍してくれる良い子なんで是非覚えてください。
ソースコード
while文
・繰り返し回数が決まってない時に輝く文法
ループの回数が決まっていない時に使う文法ですね。 配列などにはループ回数が決まってませんのでよく使うみたいです。
このコードはwhile文で書かれてますけど、この内容ならfor文で書いた方が短くなるので、後日使いましょう。
do-while文
・繰り返し回数が決まってない時に輝く文法
・条件式の結果にかかわらず、一度処理を実行するのが特徴
必ず一回実行したい時に使うものらしいんですけど、全く用途が想像できない文法でもあるんですよね。
いつかは使うのだろうし、こんなものもあるんだって程度の認識で留めておきます。
最後にswitch文でも使ったbreakのことも書いておこうと思います。
わざと無限ループを組んで一定の処理をこなした後にbreakでループを抜けて処理を完了させるものですね。
ユーザーがエラーを繰り返し続けるときに使うものですね。
他にもcontinuってものもあります。 これは処理をスキップさせたい時に使って条件式に戻って、処理を再スタートさせるものですね。
私のつまずきPoint
繰り返しこ構文でよくつまずきましたね。
1重のfor文なら余裕でできたんですけ、二重になると内側の処理がよくわからずやってらんねとかなったり、大学ではよく数学の公式をプログラムに落とし込んで処理をさせたりしてたおかげで、「こんな公式覚えてねぇ、、、」ってことが多々あってやる気を削られまくりましたよ。
今回はそれも踏まえて、根気よくやれる上に、締め切りがないから自分が理解できるまでとことんやるつもりです。
配列の時にも使うんですけど、これも手こずった記憶がありますね。
配列に文字列を入れるのも、入れた文字列の場所を指定するのにも使うから、一箇所間違えれば全部違って何がだめだったのかわからず、時間もないで大変でしたよ。
まとめ
今回はここまでにしてまとめに入りましょう
Java1日目
・演算子をちゃんと覚えておこう
Java2日目
・比較演算子を覚えよう! < > =< !=
・論理演算子も覚えよう! & | !
Java3日目
・無限ループって怖くね?
・break,continuも忘れずにね!
こんなところですかね。長々とお付き合いありがとうございました!
3日分をまとめてやるのにすげー時間かかったので次からは1日分ずつあげて行こうと思います!