リスキルテクノロジー

プログラミングがわからない人の10個の理由とその対処法

worry

「プログラミングを勉強し始めたが、よくわからない・・・」

「理数系じゃないからプログラミングはわからない」

このようなことで悩んでいる人は多い。

勉強を始めたばかりの頃、たしかにプログラミングはわかりにくい。そして、一度苦手意識がついてしまうと、そこから抜け出すのはなかなか大変だ。

このページでは、プログラミングがわからないと感じる理由を10個あげ、その対処法を紹介する。

ご存知の通り、「なんとなくわからない」が一番どうしようもない状態で、「何がわからないかわかった!」となったら案外物事はスムーズに行くものだ。

あなたが、プログラミングに苦手意識を持ってしまっているなら、参考にしてほしい。

続きを読む

文字列を扱う際の注意点

前回、
「文字列の比較」をテーマに
お話をしました。

Javaプログラミングにおいて、

文字列が同じかどうかを比較するには、
「==」演算子ではなく、
「equals」メソッドを使用する

という内容でした。

では、なぜ
整数(int型)は「==」演算子で
比較できるのに、
文字列(String型)は「==」演算子で
比較できないのでしょうか。

今回は、この疑問を解き明かしながら、
Javaプログラミングにおいて文字列を扱う際の
注意点をお話していきます。

「==」演算子で
文字列が比較できない理由

文字列を比較するときに
「==」演算子が使用できない理由は
下記の2つを確認すれば分かります。

・「==」演算子の挙動
・文字列の生成方法

「==」演算子の挙動

変数同士を「==」演算子で比較する場合、
変数に格納されている値同士を比較します。

例えば、

int a = 3;
int b = 3;

if (a == b) {
System.out.println("同じ");
} else {
System.out.println("違う");
}

上記の結果は、"同じ"と表示されました。

変数aには3が格納されます。

また、変数bにも3が格納されます。

そのため、
変数aと変数bは同じものであると評価され
"同じ"と表示されました。

では、文字列の場合は
どうでしょうか。

String str1 = new String("あ");
String str2 = new String("あ");

if (str1 == str2) {
System.out.println("同じ");
} else {
System.out.println("違う");
}

上記の結果は、"違う"と表示されました。

つまり、変数str1と変数str2には
"あ"という文字列ではなく、
それぞれ違うものが格納されている、
ということになります。

では一体、
変数str1と変数str2には
何が格納されているのでしょうか。

理由2 文字列の生成方法

文字列を生成するときに、
「new」という演算子を使用しました。

String str1 = new String("あ");
String str2 = new String("あ");

実は、この「new」演算子は、
文字列を生成した後、

その文字列が
どこにあるかという情報(場所)を
値として返します。

そのため、変数str1には、
最初に生成された"あ"という
文字列の場所が格納され、

変数str2には、
次に生成された"あ"という
文字列の場所が格納されます。

2つの"あ"という文字列は
別々の場所に生成されるため、
結果的として変数str1と変数str2には
違う値が格納されることになります。

そのため、文字列の比較には、
「==」演算子が使用できない、
ということになります。

文字列の不思議

ここまでのお話で、
なぜ文字列の比較には、
「==」演算子が使用できないか、
分かって頂けたかと思います。

では最後に、
以下の例を考えてみましょう:

String str1 = "あ";
String str2 = "あ";

if (str1 == str2) {
System.out.println("同じ");
} else {
System.out.println("違う");
}

Javaでは、
文字列を生成する際に、
上記のようなコードを
記述することもできます。

上記の結果は、
どうなるでしょうか。

結果は...

"同じ"

と表示されます。

なぜ??

これは、

String str1 = new String("あ");
String str2 = new String("あ");

String str1 = "あ";
String str2 = "あ";

とでは、
文字列の生成方法に違いがあるためです。

「new」演算子を使用した場合は、
2つの"あ"が別々の場所に生成されます。

しかし、「new」演算子を
使用しない場合は、
メモリの無駄を無くすため、

コンパイルの際、自動的に
下記のようなコードに変換されます。

String str1 = new String("あ");
String str2 = str1;

上記の場合、
"あ"という文字列は
1つだけ生成され、
変数str1と変数str2には
同じ"あ"の場所が格納されます。

kohsaka

これにより、
「==」演算子で比較したときに

"同じ"

と表示されるわけです。

このように、
文字列の生成方法の違いにより、
比較の結果が変わることもあるため
注意してください。

-------------------------------------------------------
■□お知らせ□■ 新しいLAブログができました。
lsコマンドで覚えたい15のオプション【Linuxコマンド集】
他にも学習に役立つ情報が盛りだくさんです。是非ご覧ください。
------------------------------------------------------

lsコマンドの使い方と覚えたい15のオプション【Linuxコマンド集】

lsコマンドはファイルやディレクトリの情報を表示するコマンドで、lsコマンドなしにLinuxを使うことはできない。1日に100回以上叩く人もいるコマンドだ。

しかし、オプションは「-a」や「-l」しか使っていないという人が多い。そこで、本日はlsコマンドの15個の便利オプションについてご紹介しよう。

よくLinuxを使うという方は参考にして頂ければ幸いだ。

続きを読む

【初心者向け】これもJava? Javaで作れるものまとめてみた

java

「Javaの勉強をしているが、何が作れるようになるかイメージがつかない・・・」

「プログラミングを本気で勉強するならJavaがいいという話を聞いたけど、何を作り始めたらいいのか?」

勉強し始めたばかりの方であれば、このようなことで悩むのではないだろうか?

Javaはとても優秀なプログラミング言語で、様々なものが作れる。基礎を学べることから、仕事に直結する新入社員の研修などではJavaが用いられることが多い。

しかし、いきなりプログラミングを打つ練習から入ってしまうため、何が作れるのか想像がしにくくなってしまう。

このページではこれからJavaを勉強しようとしている方、Javaを勉強し始めたがイメージがつかない方向けに、Javaを勉強することで何が作れるようになるかを解説した。

Javaに興味があれば、参考にしてほしい。

続きを読む

【作業時間を半減!】Linuxのショートカット総まとめ

Linuxはコマンドでの操作が基本だ。だからこそ、ショートカットを使いこなせるかで作業の速度に明確な差が出てくる。

ショートカットを覚えると大袈裟ではなく、作業時間が半分になることもある。Linuxを使うエンジニアなら覚えておくべきだろう。

このページではLinuxショートカットの基本を総まとめしてみた。ショートカットと言っても2種類ある。

このページでは「時短」という意味合いを込めて両方ともまとめた。Linuxを使う方はぜひ参考にしてほしい。

続きを読む

最速理解Linuxの7つの特徴!Windowsとの違いとは?

linux_windows

LinuxとはOS(オペレーティングシステム)の一種だ。ここ15年ほどで急速に広まってきていて、特に企業で使われていることが多い。

Windowsという有名なOSがあるにもかかわらず、これだけ普及しているのは、Linuxに良い特徴がたくさんあるからだ。

このページではLinux初心者の方に、Linuxの特徴やWindowsとの違いをお伝えする。このページを読めば、Linuxの特徴について理解できているはずだ。

Linuxに興味を持っているのであれば、参考にしてほしい。

続きを読む

LPIC level1の勉強時間を減らす!1ヶ月で合格する勉強方法

どのような勉強方法を用いて、どれくらいの勉強時間を使えばLPIC level1を取得できるだろうか?

LPIC level1はLPICの最初の試験だ。最初の試験だからこそ、どれくらいの時間がかかるか心配になるだろう。

また、Linuxの素人からでも受かるのか? どういった勉強方法がいいのか? こういったこともLPICの勉強を始める前に知っておきたい事柄だ。

このページでは、LPICの合格にかかる勉強時間と、それをなるべく減らす勉強方法についてお伝えする。LPIC受験を考えている方は参考にしてほしい。

続きを読む

ざっくりわかる!プログラミングのためのフローチャートの書き方

flowchart

実はプログラムを書く前に考えるべきことがある。

プログラムは料理のレシピを作るようなものだ。しかし、料理のレシピと違って人間が読むわけではない。そのレシピを読むのはコンピュータだ。コンピュータにわかる形で伝えてあげなければいけない。

そのためにはどんな順番で、どのような処理で行っていくか、これをあらかじめ考える必要がある。この順番や処理を考える上で便利なのが、フローチャートだ。

このページでは、フローチャートの書き方や考え方をまとめてざっくりと解説する。

これをしっかりと考えながらプログラミングができるかできないかで将来的に大きな差が出てくる。プログラミングの基本だと思って、この機会に理解してしまおう。

続きを読む

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する