Diary of Traprogrammer

男の娘プログラマーが自分の生活や勉強模様について書いてます♪

死にたいって言ってる奴ほど、死にはしないけどそれくらい苦しい件。

皆さん、こんにちは。Yuyoです。

今日はタイトル通りです。なんで、死にたいって言う人がいるのか。

結構居ますよね。「いやー、もう死にたい・・・」みたいな事を言う人。

Twitterだとそう言う類のツイート、よく見かけるし。なんなら、ボクが昔運用してたアカウントはそういうツイートめちゃくちゃしてましたw(今もたまにしてしまってる・・・)

リアルだと、会社の同僚や学校の友達がそういうことをふと言うことありますよね。

言われた側からすると、大抵の人間は分からないみたいですね、希死念慮が常にあるって状態が。確かに凹むことはあったり、死んじゃおうかなと考える人は一定数いるみたいですが、大体は美味しいもの食べたり、お風呂はいったり、好きなアニメとかドラマ見たり、音楽聴けばそんなのは消えるらしいです。(ボクもこれらの対処法で薄らぐことはありますが、根本的には死を願っています。)

じゃあ、なぜ死にたいとずっと思ってるのか?

これには、おそらく3パターンくらいあると思うので、それぞれ話していきます。

1. 苦しいことが続いている

例えば、虐待受けてるこどもとか、ブラック企業で勤めてる人ですね。彼らは自分の人権がまるで無いように扱われているので、次第にそれらの暴力から生き残るためだけに生きるようになります。しかし、暴力は止まず、彼らの心身はボロボロになっていきます。その結果、苦しみから逃れるため、死を願うようになる。その思いがずっとついて回ることになります。

みなさん、小学校でマラソンしたことありますか?もしくは何かスポーツとかやってたりしてる方。

あれが苦しくても頑張れるのはなぜか。それは決められたゴールがあることです。

頑張れば終わるって言うのが見えてるんですね。それに苦しさも回復できるものだから、そんなに後に引かないんです。

しかし、精神的な攻撃は違います。やられた側は絶対に忘れられませんし、心の傷はそう簡単には癒えません。そして、理不尽に行われるなら、そこに終わりというものが訪れないのです。

そして、頭の中は苦しみから逃れることで一杯になり、いつしか自殺という結論に至るのです。

よく、中高生が自殺するニュースを見て、「逃げればよかったのに。」など、簡単にいう人がいますが、それが出来るなら、いじめ問題など浮き上がってきていません。

いじめてくるやつらは無駄なことに頭働かせるんで、被害者側が逃げられないような心理状態に追い込みます。そして、誰にも相談できない状況に陥るんです。学校を休める子も中にはいますが、多くの親は学校を休むことを悪いことだと勘違いしてるので、怠けだとかいって、行かせるんですね。で、こども側からしてみれば、親に怒られたくない、けど学校に行ったらいじめられる、嫌だなってなって、家にも学校にも居場所がなくなるんです。

そして、行き場のない心は、苦しみから逃れたくて、手っ取り早い手段「死」をのぞみ、それが言葉として出るのです。だから、こういう人に会ったら、どうか責めたり、アドバイスをしないでください。これ以上苦しませてもなんのメリットもないです。それで立ち上がれるなら、そんな状況には陥っていないはずなのです。

あなたがすべきことは一つ。その人が今までの状況に耐えたことを認めてあげて、したいことをさせてあげてください。正直に言って、学校や会社はその人の人生になんの責任も強制力も持ちません。彼らは彼らの都合のいいように組織の中にいる人間を洗脳します。外から見て、その人の状況がおかしいと感じたなら、どうか救ってあげてください。それがあなたの大切な人ならなおさらです。取り返しのつかないことになる前に。

では、次。

2. 人生うまくいってない

こういう人もいますね。人生何やってもうまくいかないで、嫌になって死にたいっていう人。あと、ちょっとした不幸が身に降りかかった時、死にたいなとかいう人。

まあ、気持ちはわかります。正直、ボクもそういう時期ありましたからね。身近な成功体験をしない限り、人生は面白くなく、常に闇の中にいるようなものですからね。特に中高生の方や、何かに挑戦して失敗した人に多いんじゃないでしょうか。

ただね、こういう人には待ってほしい。人生うまくいかない、生活が面白くない、だから死んでしまおう。これって勿体無くないですか?だって、行ってないところも見てないものも食べてないものも一杯あるでしょ?なんなら、人生経験したほうがいいことを全くやってない人もいる。(恋愛とか、あてもなく旅をするとか、少し危ないゾーンに踏み入るとか)要は、人生楽しんでから死んだほうが良くないですか?ってことです。ボクが今、生きてるのは、基本この考えに則って生きてるからです。だって、まだしたいこともいっぱいあるし、見たいアニメややりたいゲームも溜まってますし。

いや、もうそんなのいいよ、どうせなにやったってうまく行かんし、人生面白くないし・・・って人は、少しだけ死ぬの引き伸ばしてみてください。

ひょっとしたら、明日は今までで一番最高の食事ができるかもしれないし、明後日は見たことのない景色が観れるかもしれない、一週間後には夢中になれるものが見つかるかもしれない。これは全て可能性の話です。だから確証は出来ません。ただ、これらの可能性は決して低くないってことです。そして、長く生きていれば、生きているほど、これらの出来事には遭遇しやすいのです。だから、人生捨てたもんじゃないですよ。

実際、ボクも大学入るまでは死にたくて仕方なかったけど、入って親元から離れたら楽になりましたし、今が人生で一番楽しいです。ここにだどりつくまで21年かかってます。長い・・・でも、あの時死ななくてよかったと思えるので、待ってみても損はしないんじゃないかなって思います。ただ、1.みたいに苦しんでる人がいるのなら、我慢しないで誰かに言うほうがいいです。世の中は意外と優しいので、助けを求めたら結構な人が手を差し伸べてくれます。だから、どうか、希望を捨てないで。

そして最後。

3. 生きることに執着がない

生きることがめんどくさいってことです。もう人間として活動するのが嫌って感じですかね。まあ、こういう人は滅多にいないです。

ただ、ボク自身に少しそう言う部分があるので話すと、もう生命活動することがめんどくさいんですよね、お腹すくし、トイレ行かないといけないし、眠くなるし、寝ないといけないし、寒さや暑さに弱いし・・・人間て脆いなあ・・・っていつも思ってます。あと、社会的な営みしていくのもめんどいですね。誰かと会話しなきゃいけないとか、挨拶しないと悪く思われるとか、働かなきゃいけないとか、もうめんどくさいですね。何故に無駄な衝突を防ぐために、エネルギーを使わにゃならんのかと。

だから、これこじらせまくると、死にたくなります。で、もしこんな変人にあったらどうすればいいか。

答えは一つ。

 

スルーでOKですw

 

こう言うタイプの人って、よっぽどでもない限り、本当に死なないのでw

まあ、考えすぎて一時的に頭おかしくなってるだけです。

ただ、こう言う人が常考えてることって、「うまく生きたい」ってことなんですよね。

いかに効率よく、ストレスを抱えず生きていけるか。それが問題なんです。

だから、出来ることといったら、悩み相談された時、解決法を教えてあげることですかね・・・

ただ、中には真剣に悩んでる人もいると思うので、そう言う人には、とことん付き合ってあげるか、いい友達を紹介してあげてください。多分、どっかで満足してくれます。

 

さて、この3パターンに共通してること、それは生きづらさという苦しみを抱えていることです。それが「死にたい」という言葉になって出てるんです。

彼らはまだ死に向かってる途中です。本当に死ぬときは、誰にも言わずに、ひっそり死にます。だから、彼らの苦しみを和らげたり、死ぬのを引き止めるには、この言葉が出てきたら、真っ先にやったほうがいいことです。

もし、何もケアされないまま進んでいくと、死を選んだり、死ななくても心を病んでしまうことになるので。そして、彼らは人に相談できません。苦しみを一人で抱えてしまうので。

だから、死にたいって言う人があなたの前に現れたとき、責めたり、止めたり、アドバイスをするというのは出来るだけ控えてください。するべきなのは、その人の話をちゃんと聞いて、苦しみを理解することです。

彼らは本当に死にたいと思ってません。ただ、苦しいんです。苦しくて苦しくてたまらないんです。その思いから逃れたくて死にたいって言ってしまうんです。だから、まずはその苦しみをそのまま受け止めてください。

そして、ある程度落ち着いたら、今後のことを話していけばいいんです。

そうすれば、きっと彼らの人生にも、光が差すはずです。

人を助けるって大抵は躊躇いますよね。だって、何か見返りがあるわけでもないし、感謝されるわけでもないし。じゃあ、なんでそれをボクは勧めているのか。

それは自分のメンタルが守られるからです。もし、後々あなたの関わった人間が、自分の何気ない発言で、メンタル壊したり、自殺を選んだって分かったら、どうですか?なんか、後味悪くないですか?あなたが鋼のメンタルを持ってる人ならともかく、そうでないなら、自責の念にかられるかと思います。あと、自分が同じ状況に陥った時に、具体的な対処法を相手に提示することもできます。だから、ボクはいろんな人がいるんだってことを、皆さんにお伝えしてます。

それから、この助け合いのシステムが出来上がれば、きっと人間関係は改善し、色々な場面で雰囲気を上向いたものにできると思います。そうなれば、学校や職場の人間のモチベーションも上がりますからね。

今回の記事はいかがでしたでしょうか?死にたいと言う発言には、様々なバックグラウンドがあり、そこには苦しみが詰まっていると言う話でした。

何か感じた方には、ぜひ、コメントいただけるとありがたいです!

Yuyoでした。ではまた。

強者の理論は誰でも使えうる。

皆さん、こんにちは!Yuyoです。

前回は無意識に自分を傷つけるのを止めようということを話しました。

今回は人は無意識に誰かを傷つけているということを皆さんに認識してもらうことと、それを止める術について語っていきたいと思います。

突然ですが、皆さんはこの「強者の理論」が何だかご存知でしょうか?

これは、自分の置かれている環境からものをいうことで、知らず知らずにマウントを取っている。これを「強者の理論」とボクは呼んでいます。

例えば、経済的に恵まれている学生が、経済的に苦しんでいる学生に対して、お金無いと愚痴られた時に、「バイト増やせば良いじゃん?」って言ったら、それは強者の理論に成りかねないのです。苦しんでいる学生はひょっとしたら借金を抱えているのかもしれないし、バイトをすでにフルでやっているかもしれないし、生活費や学費を自分で稼がなきゃいけないかもしれないのです。

恵まれている側からすれば、少し経済的に厳しくなったら、バイトして少額稼げば、それで窮地を免れるのかもしれません。だから、この発言が出るのですが、苦しい側からしていれば、精一杯やっても、限度があり、それを苦しいと表現してるのです。両者の悩みのレベルが圧倒的に違います。

これはあらゆるシチュエーションで起こりえます。ブラックで働いてる人に、安易に転職や辞めることを進める人たち。勉強のできない学生に、根性論を振りかざしたり、出来ないことを責める教師。精神的に病んでる人に病院に行くことや環境を変えることを勧める人。

何故、彼らは強者の理論を安易に振りかざせるのでしょう?

それは、自分たちが強者であることを認識しておらず、自分を置かれた状況だけを根拠にものを言っているからです。

と言うより、人は常に自分の立場からしかものを言うことができないのです。

想像力が必要でもありますが、当事者でない限り、出来る範囲は限られています。

そして、自分の想像の範囲内から、意見を述べた結果、その意見は全く当事者側には共感できるものではなく、ますます距離が離れてしまうのです。

ならば、そこに近づくためには、どうすればいいか?

当事者側とそれを取り巻く人たちを繋げるものこそが、「情報」と「思考」なのです。

今のネット社会では、探せばいくらでも情報にアクセスできます。

実際、センシティヴな話題であるLBGTや発達障害、世の中を取り巻いている教育や経済の問題、これらは自分で調べさえすれば、いくらでも出てきます。

そして、そうして得た情報を元に、思考を繰り返し、直面している人たちのことを考えていく。これが強者の理論を振りかざさず、ちゃんとその人たちに寄り添った意見を出せる方法だと、ボクは考えます。

強者の理論を振りかざすことによる弊害、今の世の中には多く現れているのではないでしょうか?

他人のことを考えられず、自分本位な人々(これは年齢別に関わらず)、国民のことを考えずに、新たな法律を作っていく政治家(中には寄り添っているものもあるが、大抵は上位層の人々のことしか考えていない)、自社の利益のみを追求する企業。

これらの問題は、全て強者の理論を振りかざすものたちによって、起こっていることではないでしょうか?そして、もし世の中の大半がこう言う人々になってしまったら・・・行き着く先はディストピアです。

皆さんに覚えていて欲しいことは2つです。1つは、強者の理論は、自分の立場のみ考えてものを発してしまうことで、誰でも振りかざす可能性のあるもの、そして、もう一つは、情報を収集し、深く考えることで、強者の理論から、人々に寄り添った意見に変えられるのだと言うこと。

この記事を読んでくださった皆さんが、今一度立ち止まり、自身の言動について深く考え、少しでも思いやりを持っていただければと思います。

長文、および上から目線で申し訳ありませんでした。

Yuyoでした。ではまた。

無意識に傷つけるの辛くない?

みなさん、こんにちは。Yuyoです。

ブログが全然更新できてなくてごめんなさい。

正直、忙しさやメンタルの弱さを理由に逃げたというのが、正直なところです。

ちょっと今回は趣旨を変えて、思考方法だったり、人との接し方を自分なりに書いていきたいと思ってます。

さて、ブログが更新できてない自分でしたが、思考としてはこんな感じ。

1. 毎日更新が辛くなる

2. 1日くらい休んでも大丈夫だろうと休む

3. 気づくと、更新が1ヶ月も途絶えている。

4. もう自分ってダメだとなり、無気力になる。

ただ、こういう思考を繰り返してると、一つ気づいたことがあります。

それは「自分で高いハードル設定しすぎちゃう?」ということ。

例えば、今回のブログに関して言えば、毎日更新しないといけないとか、クオリティ高めないととか、自分でキャパ超えそうな目標設定してるんですよね。

バイトにしても、6連勤経験したことないのに、シフトむちゃくちゃ組んで、それで倒れて迷惑かけて、結局半分クビになったし。

勉強とか遊びとかあらゆることに対して、ボクは自分に見合った目標が立てられていなかったんですよね。それは自分の中にあった根拠のない万能感だったり、理想だけを見据えてしまっていたからで。

ただ、最近は自分の限界や出来る範囲が分かってきたので、そこに合わしてやっていくつもりです。今やってるJavaの講座はおそらく週2くらいになると思います。長くなりますが、お付き合いいただけたら嬉しいです。それ以外に色々書いていこうと思うので、これからもよろしくお願いします。

さて、話を本題に戻しましょう。

こういう時ってみなさんあると思うんですよ。

仕事や勉強、いろんな場面で無理して、めちゃくちゃになって、それでダメになる。

良いんです。全然それ自体は問題ないんです。ただ、それで自分を責めるのはやめませんか?っていうのが今回のテーマです。

今の世の中、色んな所からストレス受ける中、自分で自分追い詰めて、要らないストレス感じるのは、流石によっぽどのM気質の方くらいで良いじゃないですか。

皆さんは本当はそんなストレス受けなくて良いはずなんです。だって、そんなことしたって良いことないもん。でも、なんでそうしてしまうのか?

それは習慣だからなんです。ある一定の状況に陥ると、皆さんの脳が無意識に同じ思考回路にたどり着くからなんです。

ボクの場合だと、一度でも失敗してしまうと、自己肯定感がなくなって、無気力になるって感じですね・・・

じゃあ、これ変えるのってどうすれば良いの?っていうと、一定の状況に陥った時にこう考えようってあらかじめ頭の中でシミュレーションすれば良いんですね。

ミスったら責めるんじゃなくて、ミスの原因を探すとか。計画通り進まなかったら、その計画を見直して、作り直すとか。

何か失敗した時、その失敗を起こすことを減らすために、行動することは必要だと思うんです。ただそれに対して何か感情を自分自身で揺さぶる必要はないわけです。

ダメな自分に怒ったり、責めたり・・・それでミスが減るなら良いけど、減ることはないですからね。いや、こうすることで減らせるっていう人は、その感情をうまく利用して、自分の注意力を高められる人だけです。そういう人たちは数少ないんです。

普通は自分を痛みつけたって、精神すり減らすだけなんで、やらないのが自分の為。

じゃあ、何か失敗した時はどうすればいいか。

今回の失敗は、自分に必要なものだったんだと、素直に受け止め、それに似た失敗を防ぐ案を自分なりに考え、実行していく。これで良いんです。

必要以上に自分を責める必要はないんです。ネガティヴな言葉や叱責を自分自身に向けることでパフォーマンスも落ちるし、その思考が習慣付いて、悪循環を生みかねませんし。

その悪循環が構成されてしまうと、無意識に自分を傷つけかねないことにもなります。

それを伝えたくて、今回こんなタイトルにしてみました。

以上でボクを伝えたかったことは今回終わりです。

また、次はこの思考回路を別の人に向けるのも良くないよと伝えたいと思います。

今回は今までのものと違う感じになりましたが、いかがでしたでしょうか?

感想等またコメントお願いします。

Yuyoでした!ではまた。

 

 

 

初めてのJava 第6回〜ルールを覚えよう〜

どうも、Yuyoです!

前回は少し計算してみましたね。

前回は足し算だけですが、これから引き算や掛け算、割り算、そして、それらを組み合わせることで、複雑な計算も出来るようにしていきます!

ですが、その前に色々とみなさんに覚えていただきたいルールがあるので、今回はそれらを教えていきたいと思います。

ルールはかなり長いですが、頑張りましょう!

 

1.変数宣言の文

書き方: 型 変数名;

変数宣言の文とは、「新しい変数を準備して!」とコンピュータくんに指示する文です。変数とは、データをしまうためにコンピュータくんの中に準備する箱みたいなものです。変数からは数字や文字列などプログラムが扱う様々な情報を出し入れできます。

変数の実体はコンピュータくんのメモリにある区画です。変数に値を入れると実際にはメモリに値が書き込まれるんです。

実際に変数の利用例を見ていきましょう!

f:id:KiyuuUinagi0909:20190201195920p:plain

(クラス名のMainはあくまで便宜上付けてるものなので、そのままみなさんが使うと、一つのプログラムにしか使えないし、そもそもMainなんて名前つけたら、内容が分かりづらくなるのでやめましょう!(実際、ボクは教科書通りやって、保存できなくなったので...w))

では、何をしてるのか説明していきたいと思います。

まず、3行目でInt型の変数ageを用意します。

次に、4行目でageに20を代入します。

最後に、5行目でageの中に入れた20を画面に表示するよう、指示を出します。

 

イメージとしては、こんな感じ。

(分かりやすいように絵を描いてみましたが、下手ですいませんorz)

 

 

どうでしょうか?なんとなく、イメージできました?

では、次に行きます!

 

2.変数名の付け方

変数を宣言するとき、ボクたちは変数に名前を付ける必要があります。Javaプログラミングでは変数以外にも名前をつけるときがありますが、それらの名前として使える文字や数字、記号の並びを識別子と言います。

名前は基本、好きにつけていいのですが、普通はアルファベット、数字、_(アンダーバー)、記号を組み合わせて付けます。ひらがなや漢字も使えますが、あんまりお勧めはしません。それ以外にも、下に書かれてるいくつかのルールがあります。

予約語と言われる、名前に使えない単語が50個ぐらいあります。(例えば、intとかvoidとかpublicとか。詳しくは調べてみてください。ただ、よっぽどじゃないと、気にすることないです。)

・すでに使った変数名は使えません。

・大文字、小文字、全角、半角の違いは区別されます。

・小文字で始まる分かりやすい名前を付けるのが望ましいです。(例:車の名前だったりしたら、carAgeとか。あと、複数の単語をつなげて、変数名にする時は、2つ目以降の単語の先頭は大文字にします。)

・例外はありますが、1文字の変数名は避けてください。

 

どうですか?ルールが多いように見えますが、簡単に言うと、分かりやすい、被らない名前を変数名に選ぶことを心がけるということです。では、次行きますよー。

 

3.データ型

変数宣言に使うデータ型にはいくつか種類があります。色んな型がありますが、とりあえずは次の9つを覚えてもらえればOKです。

整数

・long ••• 大きい整数(±約900京)

・int ••• 普通の整数(±約21億)

・short ••• 小さな整数(±約3.2万)

・byte •••  さらに小さな整数(±約128)

小数

・double •••  普通の小数

・float ••• 精度の低い小数

真偽値

・boolean ••• true/false

文字

・char ••• 一つの文字

文字列

・String ••• 文字の並び

よく使うデータ型はint, double, booleanStringの4つです。

では、それぞれデータ型の解説をしていきたいと思います。

・整数が格納できる4つの型

long型、int型、short型、byte型の変数のは整数を代入できます。これら4つの型は箱の大きさ、つまりコンピュータ内部で準備されるメモリの量に違いがあります。そのため、代入できる値の範囲に制限があります。(上で書いた通りに)

例)

long worldPeople = 6900000000L;(Lはまた説明します)

int expense = 100000;

short age = 21;

byte glasses = 4;

例えば、byte型の変数を宣言した時は、消費するメモリは1バイトだけなので、これには-128~127までの数字しか代入できません。

一方、long型の変数を宣言した時は、8バイト消費しますが、およそ±900京というとても大きな整数を代入することができます。

ところで、どの型を使うのがいいのでしょうか?

最近のコンピュータは多くのメモリを搭載しているため、これら4つの型を厳密に使い分ける必要があるケースはなかなかありません。

多くの場合、int型を使う方が速く処理できることがあるので、整数を代入する場合は、基本int型を使うといいでしょう。

・小数を格納できる2つの型

doubleとfloatは「3.14」や「−15.2」といった小数を含む数値を代入するための型です。コンピュータの内部では小数を「浮動小数点」という形式で管理していることから浮動小数点型と総称されることもあります。

例)

double height = 168.5;

float weight = 52.5F;(Fはまた解説します)

doubleのほうがfloatより多くのメモリを消費しますが、より厳密な計算を行うことができます。そのため、特別な事情がない限りdouble型を使用します。

ここで、みなさんに覚えておいてほしいことがあります。

実は、浮動小数点方式には「真に厳密な計算が出来ない」という弱点があります。

つまり、計算を行った際にわずかな誤差が起こることがあります。普通は無視できるほど小さな誤差ですが、積み重なるとかなり大きな誤差となり、問題が起こることもあるのです。そのため、誤差が許されない計算、特にお金の計算にこれら小数の型を使ってはいけません!

・YesかNoかを格納できるboolean型

boolean型は、「YesかNoか」「本当か嘘か」「表か裏か」「成功か失敗か」という二者択一の情報を代入するための型です。肯定的情報を意味するtrue、否定的情報を意味するfalseのどちらかの値のみを代入できます。

例)

boolean rightside = true; (意味:例)コインは表面である)

boolean isSuccessful = true; (意味:成功している)

なお、trueは真、falseは偽という意味を持つので、boolean型のことを真偽値型という場合もあります。

・1文字だけを格納できるchar型、文字列を格納できるString型

char型は全角・半角を問わず「1文字」を代入できる型です。一方、String型は文字列(0文字以上の文字の集まり)を代入できる型です。具体的には次のように使います。

例)

char color = '青';

String instrument = "Guitar";

例にあるように、ソースコードに「文字」データを記述する場合は引用符(')で囲みます。「文字列」データを記述する場合は二重引用符(")を使います。このため、

「char color = "青";」とするとコンパイルエラーとなります。また、全角の引用符を使わないように注意してください。

 

4.変数の初期化

何のために変数宣言をするか。それは、変数にデータを入れたいから。

int age; (変数宣言の文)

age = 21;(ageに「21」を代入)

この文は1行にまとめて書くことも出来ます。

int age = 21;

このように「変数宣言と同時に値を代入すること」を変数の初期化と言います。

書き方: 型 変数名 = 代入するデータ;

 

5. 定数の利用

変数には異なる値を何度でも代入できます。変数に値を入れた後、別の値を代入するとどうなるかを画像を見てみましょう。

f:id:KiyuuUinagi0909:20190211205749p:plain画像では、まず変数ageを20で初期化してます。そして、2行後でageに26を代入してます。 

実行してみると、こんな感じで表示されるはずです。

私の年齢は21

•••いや、本当の年齢は26

この結果からわかる通り、変数の内容は新たな値26で上書きされ、古い値21は消滅します。

☆変数の上書き

すでに値が入ってる変数に代入すると、古い値は消え、新しい値に書き換わる。

しかし、中には書き換えられたくないものもあります。

そんなときはどうするか。こんな風に変数宣言してください!

final 型 定数名 = 初期値;

なお、定数名にはすべて大文字を用いるのが一般的です。

例)

final double TAX = 1.08;

物の値段に掛ける消費税は途中で変わるとえらいことになりますからね・・・

もし、変えられると困る変数を用いる時はこのように書きましょう。

 

では、ルールの解説はここで一旦終わります。いかがでしたでしょうか?

めっちゃ長いのに、最後まで読んでいただいてありがとうございましたm(._.)m

正直、筆者のボクも面倒臭くて、しかも無気力状態だったので、しばらく更新を開けてしまいました・・・(申し訳ないです)

明日から、また再開していきたいと思います!

また、ゲーム(MinecraftMTG、Hearthstone)についても、色々記事を書く予定なので、もしよければそちらも読んでみてください。

Yuyoでした!ではまた。

 

 

初めてのJava 第5回〜計算してみよう〜

みなさん、こんにちは!Yuyoです。

前回はプログラムを走らせるまでに何をしてるのか説明しました。

applelove1984.hatenablog.com

コンピュータくんの中で何が起きてるのか、その一部を明かしました!

まあ、自分が何してるのか分からないままだと、少し気味悪いですからね...

ひょっとしたら、何か悪いことをしてしまってたり!?なんて思っちゃったり...w

まあ、冗談はここまでにして、少しでも仕組みみたいなものを知る楽しみを覚えていただければ幸いです!

では、今回は計算できるプログラムを書いていきたいと思います。

 

今回の目的は1+1を計算し、その結果の2を画面に出すことです。

さて、では皆さんに少し考えてもらいましょう。どんな風に書いたらいいと思いますか?

Let's think!

(ちなみに、プログラムを書くときには、ルールが定まっているので、これから下に書いていきますね。それも頭に入れて考えてみてください。)

 

ルール

・英数字は基本的に半角で入力する。

・大文字、小文字の違いも意識する。

・オー(o,O)とゼロ(0)、エル(l)と数字のイチ(1)、セミコロン(;)とコロン(:)、ピリオド(.)とカンマ(,)を間違えない。

・カッコ(()、{}、)や引用符('、")の種類を間違えない。

・スペースは基本、半角のみ使う。

・public static void main (String args)は必ず必要なので、間違えずに抜かさずに書く。

・カッコでちゃんとクラスブロックやメソッドブロックを閉じる。

・ブロックの始めと終わりでは、ちゃんとインデント(字下げ)を行い、見やすいようにする。(インデントはTabキーで出来ます。)

・必要な時はコメントを書く。(コメントは、//コメント本文(行末まで)や/*コメント本文(複数行でもOK)*/という形で書けます。)

 

こんな感じですね。

では、ここでヒントをあげます。

実は、みなさんが書こうとしてるプログラムは、第2回で書いたプログラムを少しだけいじると出来てしまいます。

それはSystem.out.println("Hello World")、ここのカッコの中身を少しいじると出来ます。

試行錯誤してみてください。もし、実行して2が出れば成功です。

 

いかがでしたか?では、答えを発表します。ちなみに、色々出来ますが、今のヒントを与えて、出来そうな答えをまず発表します。

こんな感じです。

f:id:KiyuuUinagi0909:20190128193720p:plain

どうですか?めっちゃシンプルですねw クラス名を被らないように、Calculateにしたのと、カッコの中にそのまんま1 + 1を入れてあげただけです。

実行すると...

f:id:KiyuuUinagi0909:20190128194103p:plain

ちゃんと2と表示されましたね。

ちなみに、ほかにも色んな書き方で出せるのですが、それはまた近いうちに教えたいと思います。

いかがでしたか?Javaは計算もできるんですね!もちろん、簡単な計算だけでなく、書き方によってはもっと複雑な計算もできます。これから勉強していって、自分の思うプログラムが書ければ...面白い計算が出来るかもしれませんね!

Yuyoでした!ではまたー。

 

初めてのJava 第4回〜プログラムが実行されるまで〜

どうも、Yuyoです!前回の記事はいかがでした? 

applelove1984.hatenablog.com

分かりづらかったかもしれませんが、なんとなくで分かってもらえれば大丈夫です。プログラムの書き方は、また追って教えますので。

さて、今回はコンピュータくんがどうやってみなさんの書いたプログラムを実行してるのか、教えていきたいと思います!

手順としては、こんな感じ。

ソースコードの作成

コンパイル

③実行

 

では、一つずつ説明しますね。

ソースコードの作成

まず、プログラムを作成するところからです。

さすがに読み込むプログラムがないと、コンピュータくんも実行できませんからね。

ボクたちはまず、Javaが定める文法に従って、コンピュータくんへの命令、つまりプログラムを書いていきます。

「public class 〜」のような書き方の、人が読める状態のプログラムをソースコードと言います。

コンパイル

コンピュータくんは、自分の心臓であるCPUがボクたちの書いたプログラムを解釈して指示通り動きます。

しかし、CPUはボクたちの書いたソースコードをそのまま読んで、理解して、動く、ということが出来ません。

なぜなら、CPUはマシン語というCPUが理解できる言葉で書かれたプログラムしか実行できないからです。

そこで、ボクたちは、まずソースコードに対してコンパイルという処理を行ってバイトコードという状態に変換します。

この時、同時にソースコードの文法チェックも行われ、もし誤りがあればコンパイルは失敗し、どこが間違っているか教えてくれます。

コンパイルは、コンパイラと呼ばれる、JDKの中にある変換ソフトウェアがやってくれます。

③実行

コンパイルが無事成功したら、インタラプタと呼ばれるソフトウェアに対してバイトコードの実行を指示します。

インタプリタJVMJava Virtual Machine)と呼ばれる仕組みを内部に持っており、バイトコードを少しずつ読み込んで、それをマシン語に変換してコンピュータくんのCPUに送ります。

そして、コンピュータくんはソースコードで書いた通りに動作します。

ボクたちが以前やったことに沿うと、①はAtomでプログラミングを書いた時、②はjavac Hello.javaでプログラム「Hello」をコンパイルした時、③はjava Helloでプログラム「Hello」を実行した時ですね。

 

さて、今回はプログラムを実行するまでに、ボクたちとコンピュータくんが何をしているのか、解説していきました。いかがでしたでしょうか?

何か分からないことがありましたら、コメントお願いします!

Yuyoでした!ではまたー。

初めてのJava 第3回〜プログラムの中身〜

みなさん、こんにちは!Yuyoです。

前回はいかがでしたでしょうか?Hello World、あなたの画面に出ました?

 

applelove1984.hatenablog.com

これで、少しでも「なんだー、Javaって意外と簡単じゃん!」と思っていただければ、嬉しいです!

さて、今日は前回のプログラムの内容を解明していきたいと思います!

結局、なんでああやって書いたら、文字が映し出されるのか、それをみなさんに教えていきたいと思います。

では、改めて、昨日のプログラムを見ていきましょう。

f:id:KiyuuUinagi0909:20190125181306p:plain

では、一行ずつ、読んでいきますね。

一行目 public class Hello {

これは、class宣言ということをしています。

簡単に言えば、「こういうプログラムですよー」ってコンピュータ君に教えてあげてます。

何故必要なのか?

例えば、みなさんが人について、情報をまとめる時ってどんな感じですかね?

年齢、性別、身長、体重、住所、職業...色んな個人情報があるはずです。

それは、人それぞれ違うものです。

そこで、例えば、ゲームで色んな人を登場人物として出す時、雛形となる情報をまとめるプログラムと、情報を渡すプログラムを分けるんですね。

その時、もしプログラムに名前が無いと、どれがどれかわからないですよねw

それを管理して、呼び出せるようにするためです。

色んな役割があるんですが、一番大きいのは、この考えですね。

難しくてわかんないって人は、個々のプログラムを判別するためと思っててください。(それが核の考えであり、役目です。)


実際、名前つけないと、プログラムを呼び出したり、実行するのもできないですし。

お分かりいただけましたか?では、二行目を読んでいきましょう。

二行目 public static void main(String[] args) {

まず、最初に言っておきます。

これに関しては、詳しく知ろうとしなくていいです!

ボクもこれはまだよくわかってないです、申し訳ない...

今の認識としては、「無いと動かない」くらいでいいです。

いちいち細かいこと考えてると、進めないですしね!

ただ、それでも、少しぐらいどういうものか知りたいって方は、下に書いておいたんで、それ読んでいただければ。

それ以外の方は飛ばしちゃって大丈夫です。正解かどうかもわからないんで...

(誰か、詳しい方、コメント欄で教えてください!)

 

⬇︎ここから詳しい説明。

もはや、何書いてるのか分からないですねw

じゃあ、試しにこれ抜いてみますか!何で書いてんのか分かんないし。

消して、保存。コンパイルすると...?

f:id:KiyuuUinagi0909:20190126185754p:plain

あら、エラーになってしまいましたね。

英語なので、なんて書いてあるか、分かりづらい方もいるかもしれないので、簡単に説明すると、識別子が無いよということと、型の初めが間違ってると言ってます。

何のことかさっぱりですねw 大丈夫です、一つ一つ教えていきますので。

識別子というのは、名前のことです。

プログラムを書くときには、クラスや変数、メソッド、ラベルを識別するために、あらかじめ名前を宣言しなければなりません。それが抜けてるんですね。

さっきまでは、メソッド名がありましたが、無くなったのでエラーになりました。

型というのはプログラムで使えるデータの種類のことです。基本は9種類あるんですが、覚えといたほうがいいのは、文字列のString、整数のint、小数のdoubleの3つです。

さっきは消した一行の中で、String使うよと言ってたのでいいんですが、消した今、型の指定はしてません。だから、エラーになってしまったんですね。

さて、消した二行目が大事だということは分かっていただけましたか?

えっ?結局何なのか、説明が十分じゃない?そうでしょうね、ボクも実際読者なら、もっと詳しくっていうと思います。

ただ、みなさんはまだ始めたばかりです。

細かいところにとらわれて、プログラミングの楽しみを忘れてもらってはもったいないです。

適当でいいんです。

「こう書くと、こういうことができるんだな」くらいに捉えてもらえればいいんです。

確かに掘り下げることも大事ですが、とりあえず出来たっていうのも大事なんです。

そうやって書いてるうちに、ある程度書けるようになって、そこから詳しく知りたいっていうのはいいことだと思います。深く知ることで出来ることもありますし。

ただ、今はそこまでしなくて大丈夫です。感覚でやってもらえればOKです。

 

では、三行目に移ります。

三行目 System.out.println("Hello World");

これは、何となく分かると思います。print、日本語にしたら「印刷する」とかそういう意味になりますね。これは、()の中にある文字列を画面に写せという命令です。

このとき注意しなければならないのは、文字列を出力するときは" "の中に書かなければならないということです。じゃないと、コンピュータくんは、それを文字列と認識してくれないので。

 

四行目と五行目のかっこ➡︎{}、これも地味に大事です。かっこでくくってやらないと、コンピュータくんは、どこからどこまでが文なのか、認識できないので。

コンピュータくん、融通効かないんですよね...ただ、みなさんがちゃんと書いてくれたときは、ちゃんとやってほしいことやってくれるし、間違ってるときはエラー出して教えてくれますし...いい子なんで、付き合ってやってください。

また、一行目の最後のかっこでくくられてるのが、クラスブロック、

二行目の最後のかっこでくくられてるのが、メソッドブロックと言います。

f:id:KiyuuUinagi0909:20190126215121p:plain

さて、こんな感じで、中身を読み解いていきました。いかがでしたでしょうか。

大体のプログラムがこんな感じと思ってもらえればいいです。

分からないところがあったら、コメントお願いします。

Yuyoでした。ではまた!