・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);
}
}
}