基本は繰り返す?for文の基礎について知ろう!

Unityのスクリプトの基本である「for文」はどこかで目にしたことがあるでしょう。今回はそんな「for」文の基本について説明していきます!

ここでは、ブラウザ上で簡単にスクリプトを実行できる「paiza.io」を使用します。

よろしければこちらの記事を参考にしてみてください。

環境構築不要?「paiza.io」でブラウザ上でプログラミングを試してみよう!

2018.09.02

for文とは?

英語の「for」とは「〜の間」と言う意味です。

そのため、unityで扱うC#のスクリプトにおいても基本的には同じような働きをもちます。

基本操作は繰り返す!

Unityにおけるfor文の基本は「処理を繰り返す」になります!

スクリプトのfor文の後には、基本的には「繰り返す回数」がきます。

そのため、基本形は次のようになります。

forの基本形
for(繰り返す回数){
実行する処理
}

 

whileとの違いは?

似たような操作のwhileとの違いを一言で言うならば、「for文の方が細やかな条件付けが行える」という点です。

条件を細かく設定できるfor文は非常に便利です。

 

基本構文

先ほど、forの基本形は次のようであると言いました。

forの基本形
for(繰り返す回数){
実行する処理
}

しかし、実際に(繰り返す回数)の中に(50)や(150)といった具体的な数字を当てはめることはできません

したがって、実際のスクリプトの書き方は次のようになります。

 

forのスクリプトの書き方
for(変数の初期化;繰り返す条件;変数の更新){
実行する処理
}

変数の初期化とは、「“変数の宣言”と”宣言した変数への値の代入”を同時に行うこと」でした。

それ以外は、今はわからなくても大丈夫です!スクリプトを実際に見ながら覚えた方が早いです

 

続いて、for文の処理の順番について説明します。

読み込まれる順番

for文は処理される順番を理解することが非常に大切です!

まずは下の画像を見てください。

これは「1から10までの数字を順番に出力するというスクリプト」です。それぞれ説明していきます。

  1. 変数の初期化(最初のみ読み込まれる)
  2. xが10以下であれば処理を実行する
  3. xの値を出力する
  4. xをインクリメントさせる(1だけ増加させる)

一番最初は①が一度だけ読み込まれます。そのあとは②→③→④と処理が行われていき、④の後は②へと再び処理が移ります。

これを繰り返していき、最終的には②の条件を満たさなくなるまで処理が繰り返されるという仕組みです。

for文を書いてみよう!

それでは、for文の基本を学んだところで早速スクリプトを書いてみましょう!

paiza.io」にアクセスしたら、左上の言語のところからC#を選ぶのを忘れないでください。

 

サンプル①(1~10まで出力してみよう)

まずは先ほどのスクリプトのように、1から10までを出力するスクリプトを書いてみましょう。

 

public class Hello{
    public static void Main(){
        // Your code here!
        for(int x = 1; x <= 10; x++){
               System.Console.WriteLine(x);//1~10まで出力する
        }
        
    }
}

 

実行を押してみて、一番下に1から10まで出力されれば成功です。

また、「x <= 10」の部分は「x < 11」と書くこともできます

サンプル②(1~100まで足してみよう)

続いて1から100までの合計を求めるスクリプトを書いてみましょう。

今回は「total」という変数を使いましたが、for文の外に合計を求める変数の箱を用意するのがポイントです。

public class Hello{
    public static void Main(){
        // Your code here!
        
        int total = 0;//forの外で合計を求める変数を用意する
        
        for(int x = 1;x < 101; x++){
              
               total += x;//totalにxを足す
               
        }
        System.Console.WriteLine(total);//変数totalを出力する
       
    }
}

 

5050が出力されれば成功です。

 

完全に余談なのですが、暗算で1から100までの合計を求めるにはどうすべきでしょうか?

1と100・2と99・3と98のように順番にセットを作っていくと、最終的に50と51まで合計50個のセットができます。

全てのセットは101なのでこれが50個あると考えると「101 × 50 = 5050」のように簡単に求めることができます。

 

余談はこれくらいにして、スクリプトに戻りましょう!

サンプル③(1~100までの奇数を足してみよう)

続いて、1から100までの奇数の合計を求めるスクリプトを書いてみます。

1から100までの奇数の合計を求めるにはどうしたらいいでしょうか?

 

答えは簡単で、1から順に2を足していき、一番最後の奇数が99になるように足していけばいいです。

すると次のように書けます。

public class Hello{
    public static void Main(){
        // Your code here!
        
        int total = 0;//forの外で合計を求める変数を用意する
        
        for(int x = 1;x < 101; x += 2){
              
               total += x;//totalにxを足す
               
        }
        System.Console.WriteLine(total);//変数totalを出力する
       
    }
}

 

実際に書いていき、2500と出力されれば成功です!

 

まとめ

今回は、繰り返す処理を行える「for文」について説明しました

for文のポイントを最後にまとめておきます。

for文のポイント
  1. for文は計算などを繰り返す処理に使える!
  2. for文の処理の順番をしっかりおさえる
  3. 合計などを求めたいときはfor文の外に変数をあらかじめ用意しておく