異世界現地人でもわかるJavaプログラミング#4(for~ループ編~)
warning:本記事の内容の正確性は保証されておりません。
おはこんばんちは。
それなりに分岐はできたっぽいので、次に覚えとくと便利というか、覚えてないと話にならない処理、それがループについて。
今回も
https://paiza.io/ja さんのお世話になります。
(コード作成を試してみる(無料)→左上の緑の言語選択(javaじゃなかったら)言語をJavaに切り替え)
今回も、
// Your code here!
と書かれているところを色々編集していきます。
さて、forとはなんぞや?
ループカウンタを元に、同じ処理を繰り返す、とかです。
// Your code here!
int cnt; //ループカウンタ
int hensu = 0; //計算用の変数 0で初期化
for( cnt = 1 ; cnt <= 10 ; cnt++){
hensu = hensu + cnt;
}
System.out.println(hensu);
これで、何をやっているかというと、1~10までを足しています。
結果は55が表示されるはずです。
for文(forを使った文)には基本的に、ループカウンタが必要です。何回目のループかとかを覚えておく必要があるからです。
あと、何かを計算する時のワーキングメモリ的な変数で今回は、hensuさんを宣言して使ってますが、もっと簡単なループの処理だと、
// Your code here!
int cnt; //ループカウンタ
int hensu = 0; //計算用の変数 0で初期化(今回は使わない)
for( cnt = 0 ; cnt < 10 ; cnt++){
System.out.println(cnt);
}
↑こういうのもありますね。cntの値を書きだすだけです。どちらかというとこういうのが最も基本的なfor文として紹介されることが多い?
ちなみに、こちらは0~9までをループするのですが、0から始めるのは、後々覚える配列とかを扱う際に便利で必要となってきますので、特別な理由がない場合は0からループを始めるのが一般的なのかもしれません。
さて、forの書き方について、ちょっと例文やら補足と前後しちゃいましたが。
forの「()」の中は3つのパートで構成されています。
それぞれのパートを区切っているのが、「;」です。文末によく使うやつですね。ここでも活躍してます。
とうわけで、今回は、上の方の例文で説明します。
for( cnt = 1 ; cnt <= 10 ; cnt++){
最初のパート。「cnt = 1」
これは、初期化を行う場所です。for文が実行されるとき、最初の一回だけ行われます。1~10までを足し算したいので、cntを1にしてるのですね。(cntに1を代入するみたいな)
次のパート。「cnt <= 10」
ここは、ループの終了条件を判定しています。この条件を満たす間はループが回り続けるわけです。
今回は、最初のパートで1にして、そこから、10以下である間はループするという条件を書くことで、1~10のループになっています。
最後のパート。「cnt++」
これは1ループが終わるたびに行われる処理です。
ちょっと特殊な書き方をしていますが、平たく書くと、「cnt = cnt + 1」と書いているのと同じです。
cntが1の時は、cnt = 1 + 1 、2の時はcnt = 2 + 1 となるので、ループ一回ごとに1ずつ足されるわけです。
「++」とか引き算する時の「--」とかは、いちいち書くのが面倒なので、このように省略して書けることになってます。
例えば、5~1までループさせるのであれば、
// Your code here!
int cnt; //ループカウンタ
int hensu = 0; //計算用の変数 0で初期化(今回は使わない)
for( cnt = 5 ; cnt >= 1 ; cnt--){
System.out.println(cnt);
}
こんな感じになります。
もちろん、2ずつ足すこともできます。
// Your code here!
int cnt; //ループカウンタ
int hensu = 0; //計算用の変数 0で初期化(今回は使わない)
for( cnt = 0 ; cnt <=10 ; cnt = cnt + 2 ){
System.out.println(cnt);
}
この場合、0から10まで、但し、2ずつ足されるので、0,2,4,6,8,10と偶数だけが表示(出力)されると思います。
さて、普通に簡単な計算するだけだと、算術記号とif文とfor文だけで、大体なんでもできます。
とはいえ、覚えることはまだまだ沢山ありますので、次回は配列かswitch文についてにしようかなと考えています。
javaはほんと久しぶりに触って、C言語という言語とほぼほぼ共通のところしか触れてないです。(java独特の書き方とか、javaのみにある便利な記法とかあったらそれについては私の頭に入ってないので、どうやっても学ぶことはできませんのであしからず)