バグがすぐに見つかる!修正のコツ
こんにちは!
よーだです!
コードに何か不具合があると
パソコンはエラーを吐きますが、
いつもは修正点を示す
エラー文も一緒に吐かれますよね。
しかし、
無限ループや負の番地の参照など、
エラー文が付いてこないエラー
も存在します。
それを吐かれると、
コードのどこを見ていいか分からない!
となり、バグの修正に
とても時間がかかってしまいますよね。
しかし、今から話す修正のコツ
を知っていれば、
バグを探す時間を
一気に短縮することができます!
作業を効率化して
コードを仕上げるスピードを上げて、
周りとの差をつけていきましょう!
まず、コツの習得に
必要なテクニックを紹介します。
それがコメントアウトです。
コメントアウトとは
コードの一部を/*と*/で挟むことですが、
この挟まれた部分は
コードの実行の際に無視されます。
これを踏まえて、
修正のコツを見ていきましょう!
修正のコツ
まずは、コードの真ん中ぐらいの
文と文の切れ目を見つけて、
そこ以下をコメントアウト
した状態で実行してみて下さい。
そこからは、エラーが出たら
コメントアウトの範囲を広げ、
エラーが出なかったら
範囲を狭めるという操作を繰り返します。
すると最終的に、
「このfor文を実行するとエラーが出るが、
コメントアウトするとエラーが出ない」
というような境目に辿り着きます。
当然この境目にバグが存在している
はずなので、ここを重点的に
チェックしましょう!
これが修正のコツになります。
文章では少し伝わりづらいですが、
自分で実際に手を動かしてみると
分かりやすいと思います。
なので、修正点を探す時は
まずコードの一部をコメントアウトして、
そこからこの記事を見て
手順を進めてみてください。
これを習得すれば、
デバッグの能力が
大幅に向上するはずです!
ぜひお試し下さい!
実行するとフリーズする恐怖のバグとは?(修正編)
こんにちは!
よーだです!
以前、実行するとフリーズするバグへの
対処の話をしましたが、
今回は実際にバグが起きた時の
原因と修正法を紹介します!
原因と対処法を合わせて知っておくことで
バグが全く怖くなくなり、
プログラミングに対する自信が
格段にアップします!
それでは早速
見ていきましょう!
前回、フリーズは
コードをずっと実行している状態
であると分かりました。
ではずっとコードを実行している
原因は何かと言うと、
ほとんどの場合
無限ループと呼ばれるものになります。
無限ループとは、for文やwhile文などの
終了条件をいつまでも満たすことが出来ず、
コードの一番下まで辿り着けないために
実行が終了しないという状態です。
これこそが、
「実行するとフリーズするバグ」の
根本の原因です!
そして無限ループは、
変数の更新の書き忘れや
不等号の向きの間違いなどの
凡ミスによる事が多いです。
なので、もしフリーズのような状態に
陥ったら、まず無限ループを疑い、
while文やfor文を中心に
ミスが無いかを調べてみましょう!
まとめると、フリーズするバグに対しては、
- まず実行を強制終了する
- while文やfor文の凡ミスを探す
を行えばよいことになります。
もちろん他にも原因はありますが、
これで大抵のフリーズに
対応できます。
このルーティンを身につけ、
バグに対抗できるスキルを
手に入れましょう!
実行するとフリーズする恐怖のバグとは?(対処編)
こんにちは!
よーだです!
あなたは、
コードを実行しても何も出力されず、
更にコマンドを打つウィンドウが
一切の入力を受け付けなくなってしまった
という経験はありませんか?
その場合はエラー文すら
出力されないため、
どう直していいかの見当も
つかないですよね。
しかし、このようなケースの原因は
実はかなり限られているため、
その種類と対処法を知るだけで
すぐに直せるようになります!
今まで直し方が分からず
放置していたコードも、
これを知るだけで動くように
なるかも知れませんよ!
そもそもウィンドウがフリーズする
現象についてですが、
これは実は
フリーズしている訳ではありません。
正しくは、
ずっとコードを実行している状態
になっています。
なので、元通りにするには
コードの実行を強制的にストップ
させればいいのです。
そこで使うのが、
強制終了コマンド
です!
難しそうに聞こえますが、方法は
Ctrlキーを押しながら、Cキーを押す
だけです!
そうするとコードの実行が止まり、
再び入力を受け付けるようになります。
今までこのバグが起きた時、
ウィンドウを閉じて再起動…
といった面倒な手順を
とっていたと思います。
しかし、このコマンドを使うことで、
従来より大幅に短い時間で
元通りの状態にできますよね。
作業を効率化することで
修正のスピードが上がり、
結果としてバグを取り除ける
確率が高くなります!
ぜひこのコマンドを
積極的に使ってみてください!
今回はこれまでですが、
原因と修正の仕方については
別の回で話そうと思います。
それではまた!
エラーが消えずイライラ!どうしたらいい?
こんにちは!
よーだです!
前に、エラーが出た時は
エラー文を使え!
ということを話したと思います。
しかし、それでも解消できない
厄介なエラーが
たまにあります。
長い間同じエラーを吐かれると、
徐々にストレスが溜まり、
そのせいで能率が悪くなりさらに
ストレスが溜まる…
という負のスパイラルに
陥ることになります。
今回はそんな時の対処法について
話していきます!
1.休憩する
まずはとにかくイライラを
消す必要があります。
苛立っている時は自分を
客観的に見ることができず、
思考停止と同じ状態になっています。
なので、まずはパソコンを離れて
コーヒーを飲むなどして、
頭をリセットしてから再び
エラーと向き合いましょう。
時間を空けるとあっさり
原因が分かった、ということも
案外ありますよ。
2.コード全体を見る
コード内の原因を探す時は、基本
エラー文で示されたエラーの箇所の
周辺を見ると思います。
しかし、()抜けなどの場合だと、
たまにすごく離れた箇所に
原因があることがあります。
「ここはさすがに大丈夫だろう」と
思うところでも、くまなく
コードをチェックしてみましょう!
3.人にガンガン聞く
これまでの方法を試しても
上手くいかない場合、
自分の知らない事柄が原因の
可能性があります。
これについてはいくら自分で
考えても原因にたどり着けるはずが
ないですよね。
そんな時は、先生にメールする、
友達に相談する、
知恵袋に投稿するなど、
周りの人に頼りましょう!
以上が厄介なエラーへの
主な対処法ですが、
とにかく大事なのは
イライラを消すことです。
気持ちが不安定だと思ったら
一旦休憩をすることを
まずは意識していきましょう!
プログラミングを上達するには?
こんにちは!
よーだです!
今回は、
プログラミングの腕を上げる
上達法に少し触れたいと思います。
学校の課題をこなすことも
もちろん練習にはなるのですが、
それだけでは足りません!
なぜなら、受け身でやった作業は
自身の興味が伴っていないことがあり、
十分に身につかない可能性があるからです。
せっかく頑張って覚えた知識も、
期末試験が終わると抜けてしまった。
となったら嫌ですよね。
今の内に自主的な練習をすることで、
周りに差をつけていきましょう!
プログラミングの上達の基本は、
とにかくコードを書く
です。
「え?それだけ?」
と思うかもしれませんが、
結局プログラミングもスポーツと同じで、
基礎の積み重ねで上達していきます。
とにかくコードを書いていくことで、
基礎的な事項の理解が深まり、
プログラミングに自信が
持てるようになります。
そしてその結果、新しい構文などが
出てきた時も臆することなく、
スムーズに自分のものに
することができます!
肝心の書く内容ですが、これは、
これまでの課題の解き直し、
身の周りの物の機能を再現する、
自分で考えた機能を実装する、
など、何でもいいですし、
難しい内容である必要はありません。
何から始めればいいか分からない
という方は、とりあえず
授業で出た課題や例題を
解き直してみましょう!
以上が上達法の基本です。
焦らず、やれることを少しずつ
やっていくことで、それがいつか
結果になっていきます。
ぜひ今回言ったことを意識して、
頑張ってみてください!
プログラミングにおける関数とは?
こんにちは!
よーだです!
あなたは関数と聞くと、
y=2x+1
みたいな、xとyを使った式を
思い浮かべませんか?
数学ではその認識でも大丈夫ですが、
プログラミングを学ぶ際には
ちょっと危険です!
なぜなら、プログラミングでの関数は
数学のよりも広い意味を
持っているからです。
この認識のままだと、
実際に関数を書いたり見たりする時に
疑問点が生じます。
そしてそれが積み重なることで
苦手意識となってしまい、
授業で関数の話題が出ると、途端に
話についていけなくなります!
今までの常識を捨てるつもりで、
プログラミングにおける関数のイメージを
掴んでいきましょう!
関数とは一般に、
入力を受け取り、
それに応じた処理を行う
という構造をしています。
先程の例では、
xという入力を受け取り、
計算結果であるyを返す
という仕組みになっていますね。
プログラミング初心者の方は、
今まで関数という言葉を数学でしか
使っていなかったと思います。
そのため、
最後の「処理を行う」の部分が
「計算結果を返す」という認識に
なってしまっています。
ここで大事なのは、
最後に行われる「処理」に
様々なバリエーションがある
ということです。
例えば、変数の中身を変える、
配列を生成する、プログラムを終了する
などがあります。
(もちろん「計算結果を返す」も含まれます)
今まであなたが見たり書いたりした
関数は全て、最後の「処理」の部分が
存在しているはずです。
この事を理解すると、
関数はどれも同じ構造をしている
ということが分かるため、
関数が一気に簡単に感じると思います!
そのためまずは、
関数は計算結果を返すだけという
思い込みを捨ててみましょう!
エラーが出た!どうすればいい?
こんにちは!
よーだです!
プログラミングをやってると、
誰もが絶対に避けられないものが
あります。
それはエラーです。
エラーとは、
「このプログラムは実行できないよ」と
パソコンから言われることですが、
適切な処置をすることで解消できます。
しかし、実際にエラーが出た時、
どうしたらいいか分からない!
という方もいるかと思います。
そんな方は、今から紹介する
エラーへの王道の対処法を
押さえ、実践していきましょう!
これを知るだけで
エラーへの恐怖心が無くなり、
プログラミングのモチベーションも
より高くなります!
結論から言うと、
エラーへの一番の対処法は
エラー文を使うこと
です!
なぜなら、エラー文は
「この箇所がこういった理由でダメだよ」
ということを細かく
示してくれているからです!
しかし、エラー文は
英語でびっしりと書かれるため、
とても読みにくいです。
でも大丈夫!そんな時は
エラー文を丸々コピーして、
Googleなどの検索窓に貼り付けて
検索してみましょう。
すると、
そのエラーを日本語で解説している
サイトが沢山ヒットするはずです!
サイトの中身と
自分のプログラムを照らし合わせ、
どこが間違っているかを
見つけましょう!
たったこれだけの事ですが、
この流れを押さえておくだけで
劇的にエラーに対応
できるようになります!
ぜひお試しあれ!