・p.084「else if文」から
提出フォロー アレンジ演習:ex082
・p.081 Chap2_5_1をアレンジして「"未成年"」または「"成人"」の前に「●歳は」を表示しよう ・また、「"未成年"」または「"成人"」の後に「"です"」を表示しよう ・それぞれの表示は1つずつの記述にすること
作成例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ex082 : MonoBehaviour {
public int age; //パブリック変数
void Start() {
Debug.Log(age + "歳は"); //【追加】ageの値に連結して表示
if (age < 20) { //ageの値が20未満なら以下を行う
Debug.Log("未成年"); //"未成年"を表示
} else { //ageの値が20未満でない(20以上)なら以下を行う
Debug.Log("成人"); //"成人"を表示
}
Debug.Log("です"); //【追加】
}
void Update() {
}
}
アレンジ演習:ex082・改
・表示を連結して1回の記述にしよう ・文字列型の変数を用いると良い ・Debug.Logをif-elseを抜けてから行うこと
作成例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ex082 : MonoBehaviour {
public int age; //パブリック変数
void Start() {
string str = age + "歳は"; //【変更】ageの値に連結して格納
if (age < 20) { //ageの値が20未満なら以下を行う
str = str + "未成年"; //【変更】"未成年"を連結
} else { //ageの値が20未満でない(20以上)なら以下を行う
str = str + "成人"; //【変更】"成人"を連結
}
Debug.Log(str + "です"); //【変更】"です"を連結して表示
}
void Update() {
}
}
p.084 else if文
・多分岐構造を実現する構文がif-else if構文で、else ifは「ではなくて、もしも」を意味する
・else ifはifの後であればいくつでも記述できる(ifの前は不可)
・また、elseの上に記述できる(elseの後は不可)
・書式:
if(条件式①) {
①がtrueの場合の処理
} else if(条件式②) {
①がfalseで②がtrueの場合の処理
} else {
①も②もfalseの場合の処理
}
・なお、ifの条件式①に含まれるような条件②にすると、else ifの内容は実行されない
p.085 Chap2_6_1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Chap2_6_1 : MonoBehaviour {
public int age; //パブリック変数
void Start() {
if (age < 20) { //ageの値が20未満なら以下を行う
Debug.Log("未成年"); //"未成年"を表示
} else if (age < 65) { //ageの値が20未満ではなく65未満なら以下を行う
Debug.Log("成人"); //"成人"を表示
} else { //どちらでもないなら(65以上なら)以下を行う
Debug.Log("高齢者"); //"高齢者"を表示
}
}
void Update() {
}
}
p.087 else if文で起こりやすいミス
・if-else if-else構文で書区べきプログラムで、誤って「else if」を「if」にすると、文法エラーにならず、
実行も分岐によっては変わらないのでミスに気づきづらいので注意
・下の例では、20以上や65以上での処理は変わらないが、20未満の時のみ誤動作する(未成年と成人の両方が表示
されてしまう)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Chap2_6_1 : MonoBehaviour {
public int age; //パブリック変数
void Start() {
if (age < 20) { //ageの値が20未満なら以下を行う
Debug.Log("未成年"); //"未成年"を表示
} if (age < 65) { //ageの値が20未満ではなく65未満なら以下を行う【誤り】
Debug.Log("成人"); //"成人"を表示
} else { //どちらでもないなら(65以上なら)以下を行う
Debug.Log("高齢者"); //"高齢者"を表示
}
}
void Update() {
}
}
・これは内部的には2つのif文になっているので、下記が動作していると考えると良い
if (age < 20) { //ageの値が20未満なら以下を行う
Debug.Log("未成年"); //"未成年"を表示
} //【ここで一度切れている】
if (age < 65) { //ageの値が20未満ではなく65未満なら以下を行う【誤り】
Debug.Log("成人"); //"成人"を表示
} else { //どちらでもないなら(65以上なら)以下を行う
Debug.Log("高齢者"); //"高齢者"を表示
}
アレンジ演習:p.085 Chap2_6_1
・4分岐にして、6歳未満の場合「幼児」と表示しよう。
作成例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Chap2_6_1 : MonoBehaviour {
public int age; //パブリック変数
void Start() {
if (age < 6) { //【追加】ageの値が6未満なら以下を行う
Debug.Log("幼児"); //【追加】"幼児"を表示
} else if (age < 20) { //【変更】ageの値が6未満ではなく20未満なら以下を行う
Debug.Log("未成年"); //"未成年"を表示
} else if (age < 65) { //ageの値が20未満ではなく65未満なら以下を行う
Debug.Log("成人"); //"成人"を表示
} else { //どちらでもないなら(65以上なら)以下を行う
Debug.Log("高齢者"); //"高齢者"を表示
}
}
void Update() {
}
}
p.088 論理演算子
・2項&&演算子:左辺と右辺がbool型(p.56)であれば、bool型を返す。
どちらもtrueならtrueを、でなければfalseを返す。よってアンド(かつ)と呼ばれることがある
・if文の条件式に用いると「if(a > 0 && b > 0)」なら「aは正の数、かつ、bも正の数」と意味する
・論理演算の用語では「論理積」ともいう
・この演算子は、2つの不等式を両辺に置くことで、値の範囲をチェックするときに便利
例: if(a >= 1 && a <= 10) { //aが1以上10以下であれば
・ただし、同時に成立しない式にせぬよう注意
例: if(a >= 11 && a <= 10) { //aが11以上10以下であれば ←ありえない
p.089 Chap2_7_1
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Chap2_7_1 : MonoBehaviour {
public int age; //パブリック変数
void Start() {
if (age >= 6 && age <= 15) { //ageの値が6以上かつ15以下なら
Debug.Log("義務教育の対象");
}
}
void Update() {
}
}