プログラミング学習(Java):総集編1
緊急事態宣言解除から一夜明けましたね!町中がどんな感じか、仕事終わりに飲み屋街を見て回りました。
人は多かったものの、以前ほどの活気が無いように感じました。解除明けから間もないこともありますが、他人の目を気にしてしまいお酒を楽しめないのではないかと思います。改めて、コロナ問題が与える影響の大きさを実感しました。
まあ、お酒が入れば関係ないのでしょうが、だからといって飲み過ぎには注意しましょう!
自粛解除後は、腸内(町内)環境を整える!
これ大事です。
今回は、一つの区切りとして、これまで学習したことを一つの記事にまとめようと思います。
プログラミング(Java)
[プログラミング言語]
プログラミングを学ぶには、”言語”を学ぶ必要があります。
なぜ”言語”という表現をするのかというと、コンピューターが内容を理解するためにはプログラムを作成する必要があります。
そのプログラム構成は、031468456....のような数字の羅列で出来ているらしいのです。
”機械語”って言うらしいんですが.... 何て書いてあるか分かります?
これを理解できる方は、頭にプラグ穴がある人です。あなたがいる場所は仮想世界の可能性があります。
冗談は置いといて、その機械語を人間が理解しやすくしたものがHTML、Python、PHP、Java...などの”言語”という訳です。
なので、学習するにあたっては「どの言語を勉強するのか」。方向性を決めるといいと思います。私は、数ある言語の中からJavaを選びました。理由は世界的に使用されている言語だと言うこと..
世界的に使用されている言語=基本的な言語?
こう解釈した訳です。単純ですね笑
[事前準備]
まず最初に本を買いました。ネットで色々調べて、たどり着いたのが
これ。
近くの書店に無かったのでAmazonでポチリました。
初めてJavaを勉強する人が理解できるように、中身構成が順序立てて書いてあります。凄く分かりやすいです。 売上No.1は伊達じゃないですね。
本を読み進めると、すぐにプログラミングの実践に入ります。
実践って何ぞや?...
[Atom導入方法]
PC環境を整えないといけません。
”言語”を入力するソフト(エディタ)とプログラムを作成するソフト(JDK)をインストールしましょう。
エディタはAtomを使用しています。サイトで「Atom」と検索します。そしたらこんなサイトに入るはずです。
真ん中にあるダウンロードボタンを押してPCに保存してください。(フリーソフトで無料で使えます)
インストールが終わったら開いて下さい。
この画面が出たと思います。次に、日本語化の設定をしましょう。
左上のファイル(F)→設定→Install
検索欄で「japanese-menu」と検索してインストールして下さい。ついでに上記の方法で「script」と「minimap」もインストールしときましょう。いずれ役に立つはずです。
[JDK導入方法]
次にJDKをインストールしましょう。
サイトで「openjdk」と検索します。そしたら下記のサイトに入ります。
download文の中にあるjdk.java.net/14をクリック。
Windowsのzipファイルをダウンロードして展開します。(無料です)
展開したファイルは、PC→Windous(C:)→Program Files の中に新規フォルダで「Java」を作って、その中に入れましょう←ここ大事
jdkについては、ファイルの保存場所が重要になってくるので、分かりやすいようにしておくと良いと思います。
では、なぜ保存場所を指定したのか?...
それは、Javaのプログラムを実行するときにファイル指定の設定をしておかないとエラーになるからです。
コンピューターもバカなんです。(ごめんなさい 冗談です)
正しく道順を示してあげないと路頭に迷ってしまうんですね。
なので、初めてのおつかい気分で設定をしてあげましょう。
[環境変数の設定方法]
コントロールパネル→システムとセキュリティ→システム→システムの詳細設定
この画面が開けたと思います。環境変数のボタンを押してください。
そして、システム環境変数の中から「Path」の欄を見つけて選択、編集を押します。
さらに新規のボタンを押すと入力が出来るので「C:¥Program Files¥Java¥jdk-14.0.1¥bin」と入力して保存しましょう。
ここまで終わったら再起動してください。
要は、コンピューターに「CドライブのProgram FilesのJavaの中にjdkファイルがあって、その中のbinファイルを使って」という環境設定をした訳です。(日本語がおかしい)
これで、プログラムを実行するときに、コンピューターは道に迷わないはずです。(多分)
[プログラム実行]
今から、パソコンに「こんにちは、私はコンピューターです。」と画面に表示する作業をやっていきます。
えっ? Word使えばすぐじゃん!
はい。そう思ってた時期が私にもありました...
確かにそうなんだけど! 今から学ぶのはコンピューターの”根源”にあるものと思ってくれれば良いと思います。私は、そう納得しました。
Atomを開いて新規ファイルを作成
こんな感じです。意味などについては本や各サイトで紹介されているので割愛します。
このファイルを「System.1.java」で保存してください。
私の場合は、Windows(C:)の中にjavaフォルダを新規で作って、その中に保存しました。
※ファイル形式は、必ず「ファイル名拡張子」にチェックを入れてね!
保存が終わったらいよいよプログラムを実行します。
Windowsホームで「コマンドプロンプト」検索してみて下さい。
実行するにあたって、コンピューターに先ほど保存したファイルがどこにあるのかを丁寧に教えてあげる必要があります。
choud>の後に 「cd C:¥java」と入力して下さい。"¥"が"\"の表記となっても問題無いです。
こうすることで、
「コンピューター君、ファイルは”choud”の中ではなく”java”の中にあるんだよ。分かったかい?」
となる訳です。
「cd C:\java」と入力すると”java”に切り替わったと思います。
そしたら、java>のあとに、「javac ファイル名.拡張子」と入力して下さい。
[文字化け解消法]
!?!?!?
......つまづくと思います。
文字化けの原因は私も詳しくは分からないのですが、どうやらコンピューターが入力された文字を読めないようです。
...日本語も読めないのか!
ついつい言ってしまいそうですが、怒ってはいけません。
解決法があるはずです。
実際、サイトや動画など色々調べました。
そして 「javac -encoding UTF-8 ファイル名.拡張子」
これで解決しました。
どうやら、これを入力すると私たちの見慣れた文字に変換してくれるようです。
次に進むと思います。
java>の後は 「java ファイル名」です。すると...
「こんにちは、私はコンピューターです。」 実行されました!
私は、ここまで来るのに一日ほどかかりました笑 文字化けでつまづいた形です。
[Atomを用いた実行]
PCに標準装備されているコマンドプロンプトですが、実はAtomでも実行することが出来ます。
前々回の記事で、「script」も一緒にインストールしたのを覚えてますか?
これを使えば、プログラムの実行結果が表示されるので正しいかどうかの確認が出来ます。
しかし、最初は恐らくコードが正しくても文字化けしてエラーになってしまうと思います。
詳しい理由は分かりませんが、私は下記の方法で解決しました。
前回と同じように、コントロールパネルのシステムから環境変数を編集します。
”Path”の編集で「C:\Windows\System32」と入力してOKで保存しましょう。
PCを再起動して、もう一度試してみて下さい。
別の方法として、「Windows Power Shell」でプログラムの実行が出来ます。
インストール画面で、「platformio-ide-terminal」を検索しインストールしてください。
下のほうに+ボタンが表示されると思うので、押してもらうとPower Shellが起動するかと思います。
後の操作はコマンドプロンプトと一緒です。
文字化け問題に突き当たると思いますが「-encoding UTF-8」で解消します。
また、いちいちこのコードを入力するのが面倒だと感じる方は、Atomに「あるコード」を加えることで”UTF-8”を"Power Shell"に反映することが出来ます。
ファイル→起動スクリプトを表示して「process.env.JAVA_TOOL_OPTIONS='-Dfile.encoding=UTF-8'」と入力して下さい。
保存してAtomを再起動。
すると、
こんな感じで”Power Shell”内で反映してくれるようになります。
[変数]
変数とは、記憶媒体的なものらしく指定したものを管理(記憶)することが出来るそうです。
PCのメモリみたいなものですね。
一度、記憶したものはいつでも引き出せます。実際に、下記のコードを入力してみました。
※Sample10のところは適当な数字で大丈夫です。
ここでは、numが変数にあたり、数字の”3”を記憶してます。そして、「System.out~」で記憶したものを引っ張り出してくる。そんな流れになってます。
これで、実行すると「変数numの値は3です。」と表記されるはずです。
変数を使うと、今後 コードが複雑化したときに整理が出来るので覚えていて損は無いと思います!
ちなみに、変数numを茶漬けにぼしに変えると、もれなくコンパイルエラーになります。 復習大事。人間、寝ると前日の記憶の70%は忘れてしまうそうですよ!
[変数の値が途中で変わった場合]
下記のようなコードを作りました。
前回は「System.out.println("変数numの値は"+num+"です。");」までで終わってましたが、今回新たに3つのコードが追加されています。
これは、"num=1"が"num=2"に修正されたことを表しています。同じように下に続けていけば、次々に変数を変えることも可能です。
変数は一つの値に限定されず、このように様々な値を記憶出来ます。
[変数の値を代入する場合]
値を扱うので、代入することも出来ます。
新たな変数”num1”,”num2”を使い、"num1"の値を決めたあとで"num2"に代入する。
すなわち"num1=num2=1"となります。
[入力により変数を決定する場合]
予め数値が決まっていなくても、入力により変数の値を決定することも出来ます。まず、下記コードを入力してみます。
このコードを実行しても画面には「文字列を入力してください。」としか表示されません。実は、キーボード入力の受付が出来るようになっています。
試しに、「今週で鬼滅の刃が最終回。」とキーボードで入力してみます。(※先週で鬼滅の刃は連載終了となってます。)
無事、反映されてますね。
連載開始と同時にずっと読み続けていましたが、ここまで社会現象になるとは思ってなかったです。
ちなみに好きなエピソードは、"狛治"の回想回です。
このコードを使って、変数を組み込むとこんな感じになります。
実行すると「整数を入力します。」の後にキーボード入力受付となるので、打ち込んだ値がそのまま反映されます。また、"String str="のコードを繰り返せば、複数の値のキーボード入力も可能となります。
詳しくは、本やサイトで調べてみて下さい!
[変数の計算]
変数の計算をやっていきます。
計算といっても使うのは"+、-、*、/"(足し算、引き算、掛け算、割り算)です。
今後、難易度の高い計算もあるかもしれませんが、まだそこまで学習は進んでいません。
早速、変数で計算をやっていきましょう!
下記のコードを入力しました。
"num1"と"num2"の二つの変数を設定し、それぞれに計算を行いました。
"num1"は10、"num2"は5なので計算を行うと
こういう結果となります。
一つ、"num1%num2"という計算が紛れています。
この"%"という記号は、「剰余」の意味を持ち 割った際の"余りの値"を表してくれます。
(例)
7÷4=1余り3
この場合は、"3"が剰余にあたります。
"num1"と"num2"の値は、"10"と"5"で割り切れるので、ここでは"0"という計算結果が出ました。 試しに"7"と"4"の値を設定すれば、剰余"3"が導き出されると思います。
[代入演算子]
次は、「代入演算子」を使っていきます。
代入演算子ってなんぞや?
本やサイトで調べてみて下さい。多くの種類があるので、ここでは割愛します。
"+="という代入演算子は"加える"意味を持っています。
変数とキーボード入力、代入演算子を使って、下記のコードを書いてみました。
"3つの値を入力し、それぞれを加算していく"コードになります。
今回、"1" "3" "4"の三つの値を入力しました。
その結果がこちらです。
実は、ここで少しつまづいております。
"1","3","4"を加える....
"8"になりそうな気がするんですが、答えは"7"なのです。
色々考えて、"int sum=0"で始まるので "0に加算しても0"なんだということで、一応の納得はしてますが、本当にその考え方で正しいのかが分かりません。
少し腑に落ちませんが、今は次の学習へと進んでおります。
[if文]
今回は、if文について記事にしていきたいと思います。その名の通り、指定した条件にマッチすれば結果が処理され違った場合は次の処理に移る コードになります。
実際に、変数を使ったif文のコードを入力してみました。
num(変数)が1であると設定したうえで、1が入力された場合に「1が入力されました。」との結果が反映されます。試しに入力してみます。
無事処理されました。次は、1以外の数字を入れてみましょう。
2と入力してみました。
違いが分かるでしょうか?
1を入力したときは「1が入力されました。」という結果が出ましたが、2を入力したときは「処理します。」という結果が表示されてます。
これは、条件に当てはまらない1以外の値が入力されたことで、「処理します。」という"次の処理"がされたということです。
[if~else文]
一方で、指定した条件が違った場合でも処理を実行するコードがあります。それが"if~else文"です。
下記コードを入力しました。
先ほどと同じようにnum(変数)を1に設定しました。この結果は、二通りの処理がなされます。
1が入力された場合
「1が入力されました。」との表示が出ました。
別の値が入力された場合(ここでは2を入力します)
「1以外が入力されました。」と出たので、違う結果が表示されました。
以上のことを踏まえて、最後に複数の条件処理をやってみたいと思います。
[if~else if~else文]
下記のコードを入力しました。
ここでは、値1、値2、それ以外の値の3つのパターンで条件を設定しました。
その結果が以下のようになります。
値1を入力した場合
値2を入力した場合
値3を入力した場合
このように、入力内容によって条件結果が違いますね。"if~else文"を複数使うことで、様々な条件をコンピューターに指示出来ます。
[switch文]
"switch文"についてやっていきたいと思います。
私は、ゼルダの伝説が好きで...
間違えました。
"switch文"を使えば、"if~else if~else文"を簡単にすることが出来ます。下記のコードを入力してみました。
caseを3パターン設定し、入力された値と合致した条件が処理されます。結果は、先ほどした"if~else if~else文"と同じです。
このコードで注意する点があります。まず、上記の画像では修正されてませんが"case"と数字の間は必ず半角で開けるようにしてください。くっつけたまま実行してしまうとエラーになるかと思います。
次に、必ず"break"をつけることを忘れないようにしてください。そうしないと実行結果がおかしくなるからです。
実際に、それぞれ入力した結果が以下になります。
"switch"の後、"case"で条件の割り振りが簡単に出来るのは良いですね。
しかしながら、ちょっと難しくなってきました。笑
[終わりに]
これまで学習してきたことを記事にまとめてみました。まだ、学習を始めてから1か月も経っていませんが、自分のペースで着実に進んでいるかなと思っております。
次回は、新しいコードに挑戦していきます!
ご購読ありがとうございました。では!
※間違った情報もあるかと思います。ご了承下さい。