10. 条件分岐
10.1 if
ifは以下のようなことを実行するために使用します。
- もしボタンを押したら、ジャンプする
- もし〇〇なら~~をする
if(条件)は、条件を満たした場合のみ実行されます。
void Start(){
int a = 0;
if(a > 0){
Debug.Log("通った");
}
}
10.2 条件式
以下の条件式すべてをスクリプトで記述できます。
- A == B
- A != B
- A < B
- A > B
- A <= B
void Start(){
int a = 0;
if(a < 0){ // ✖
Debug.Log("上を通った");
}else if(a > 0){ //〇
Debug.Log("真ん中を通った")
}else{
Debug.Log("下を通った")
}
}
〇のなかで一番上のものだけが実行されます。
void Start(){
int a = 1;
if(a > 0){ // 〇
Debug.Log("上を通った");
}else if(a == 1){ //〇
Debug.Log("真ん中を通った")
}else{
Debug.Log("下を通った")
}
}
bool型は真か偽かを表します。trueかfalseの2種類の値しか入れられません。
void Start(){
int a = 1;
bool jouken1 = a > 0;
bool jouken2 = a == 1;
if(jouken1){
Debug.Log("上を通った");
}else if(jouken2){
Debug.Log("真ん中を通った")
}else{
Debug.Log("下を通った")
}
}
複数の条件をANDやORで繋げることができます。
void Start(){
int a = 2;
if(a > 0 & a < 2){
Debug.Log("上を通った");
}
}
10.3 論理演算子
論理演算子は複数の条件を判定に利用することがあります。
例えばbool型 & bool型の場合は
- true かつ trueは、true
- false かつ trueは、false
になります。bool型 | bool型の場合は
- true または trueは、true
- false または trueは、true
- false または falseは、false
になります。
void Start(){
int a = 2;
if(a > 0 & a < 2){
Debug.Log("上を通った");
}else if(a > 0 | a < 2){
Debug.Log("真ん中を通った");
}else{
Debug.Log("下を通った")
}
}
10.4 短絡評価
短絡評価とは、左側を見るだけで条件が確認している場合を右側をみないことです。
void Start(){
int a = 2;
if(a > 0 && a < 2){
Debug.Log("上を通った");
}else if(a > 0 || a < 2){
Debug.Log("真ん中を通った");
}else{
Debug.Log("下を通った")
}
}
さらに複雑な条件を記述した短絡評価のスクリプト例です。
void Start(){
int a = 1;
int b = 2;
if((a > 0 && b < 0) && (a == 1 && b == 2)){
Debug.Log("上を通った");
}else if((a < 0 || b > 0) || (a != 1 || b != 2)){
Debug.Log("真ん中を通った");
}else{
Debug.Log("下を通った")
}
}
10.5 switch
Switchの記述は以下のとおりです。ポイントは各caseの範囲の最後にbreakを記述することです。
Switch(比較対象)
{
case 比較するもの:
処理内容
break;
}
caseの比較対象が連続しているときは連続して記述することが可能です。defaultは記述しなくてもよいです。
void Start(){
int a = 1;
switch(a){
case 0:
Debug.Log("aは0です");
break;
case 1:
Debug.Log("aは1です");
break;
case 2:
Debug.Log("aは2です");
break;
case 3:
case 4:
Debug.Log("aは3もしくは4です");
break;
default:
Debug.Log("aは01234以外です");
break;
}
}
10.6 三項演算子
三項演算子とは、 (真偽の条件式) ? 真値(真の場合の式) : 偽値(偽の場合の式)となる、一行で真偽の条件分岐を記述する方法です。
void Start(){
int a = 1;
string jouken = (a > 0) ? "上を通った" : "下を通った";
Debug.Log(jouken);
}