講義メモ

・p.105「インクリメント演算子:補足(前置と後置の違い)」の後でp.106「メッセージの中に回数を入れる」に進みます

アレンジ演習:p.105 Chap3_3_1

・「ハロー」の表示回数(5)をパブリック変数で指定できるようにしよう

作成例

//アレンジ演習:p.105 Chap3_3_1
using UnityEngine;
public class chap3_3_1 : MonoBehaviour {
    public int num = 5; //パブリック変数に
    void Start() {
        for (int cnt = 0; cnt < num; cnt++) { //num回繰り返す
            Debug.Log("ハロー");
        }
    }
}

p.105 インクリメント演算子【再掲載】

・複合代入演算子で1を足しこむ処理はカウントアップなどで多用されるので、専用の単項++演算子が提供されており、
 インクリメント演算子と言われる
・「変数 += 1」は「変数++」または「++変数」と記述できる
・for文のカウントアップのように、1を足しこむ処理を単独で行うのであれば「変数++」「++変数」のどちらでも良い

p.105 インクリメント演算子:補足(前置と後置の違い)

・「++変数」を前置インクリメント、「変数++」を後置インクリメントといい、演算子の評価タイミングが異なる
・前置インクリメント「++変数」では「前もって+1し、した後の値が評価になる」
・後置インクリメント「変数++」では「現在の値を評価とし、その後で+1する」
・どちらを使うというルールを決めることはあまりなく、ニーズに合わせて使い分けると良いが、
 for文のカウントアップのように、1を足しこむ処理を単独で行う場合は、どちらかに決めておくことが多い
(このテキストでは後置)

ミニ演習 mini105a.cs

・変数numを5で初期化しておき、「++num」「num」「num++」「num」の順に出力することで、値の変化を確認しよう

作成例

using UnityEngine;
public class mini105a : MonoBehaviour {
    void Start() {
        int num = 5;
        Debug.Log(++num); //6(+1してから値を返す)
        Debug.Log(num); //6(+1されている)
        Debug.Log(num++); //6(値を返してから+1する)
        Debug.Log(num); //7(+1されている)
    }
}

p.106 メッセージの中に回数を入れる

・for文の先頭で代入・初期化したカウント用の変数は、forブロックの中で利用可能
・なお、for文の先頭で初期化したカウント用の変数の有効範囲は、forブロックの中だけになる
・こうすることで、for文を多数記述しても、カウント用の変数は同じ名前でかまわない(同名の異なる変数とみなされる)
・よって、カウント用の変数をforブロックの外(後方)でも用いたい場合は、for文の前であらかじめ宣言しておけばよい。

アレンジ演習:p.105 Chap3_3_2

・forブロックの終わりの「}」の次の行として、cntの値を表示する処理を追記し、エラーになることを確認しよう
・それから、for文の前に、変数cntの宣言を挿入し、for文先頭の初期化を代入に変更して、エラーを解消しよう

作成例

//アレンジ演習:p.105 Chap3_3_2
using UnityEngine;
public class Chap3_3_2 : MonoBehaviour {
    void Start()    {
        int cnt; //【追加】forブロックの後でも利用できるように事前に宣言
        for (cnt = 0; cnt < 5; cnt++) { //【変更】初期化ではなく代入して利用
            Debug.Log(cnt + "回目のハロー!");
        }
        Debug.Log("次は" + cnt + "回目のハロー!"); //【追加】forブロックの後でも利用できる
    }
}

p.108 逆順で繰り返す

・forによる繰り返しはインクリメントに限るものではない
・必要に応じて、デクリメントを用いてカウントダウンで繰り返すことも多い
・初期値の設定や、継続条件に注意して、無限ループにならないよう、注意しよう

アレンジ演習:p.108 Chap3_4_1

・Debug.Logの回数(5)をパブリック変数で指定できるようにしよう

作成例

using UnityEngine;
public class Chap3_4_1 : MonoBehaviour{
    public int num = 5; //【追加】
    void Start()    {
        for (int cnt = num; cnt > 0; cnt--) { //【変更】
            Debug.Log(cnt + "回目のハロー!");
        }        
    }
}

ミニ演習 mini108a.cs

・for文で、2以上10以下の偶数を全て表示しよう
・この10をパブリック変数で指定できるようにしよう
・なお、1以下が指定されたら、なにも表示されないことも確認しよう

作成例

using UnityEngine;
public class mini108a : MonoBehaviour{
    public int num = 10;
    void Start()    {
        for (int cnt = 2; cnt <= num; cnt += 2) { //2から10まで+2しつつ繰返す
            Debug.Log(cnt);
        }        
    }
}

ミニ演習 mini108b.cs

・身長(m)をdouble型のパブリック変数で、体重(kg)の下限と上限をint型のパブリック変数で受け取り、1kg刻みでBMIを表示しよう
・BMIは体重(kg)÷身長(m)÷身長(m)で得られる
・できたら、何kg刻みで表示するかも、int型のパブリック変数で受け取るようにしよう

作成例

using UnityEngine;
public class mini108b : MonoBehaviour{
    public double height = 1.7;
    [Header("体重何kgから何kgまで何kgごとに?")]
    public int from = 50;
    public int to = 60;
    public int each = 2;
    void Start()    {
        for (int i = from; i <= to; i += each) { //form以上、to以下、eachごとに繰返す
            Debug.Log("体重"  + i + "kgのBMIは" + i / height / height);
        }        
    }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です