(3)- if文の実験

##やりたかった事
if文でつまづいた。

「if」
「else if 」
「else」

なんでいうこと聞いてくれんのやろか？
理解出来ていないところを探してみようかｎ。。

##通常のif文から実験してみる


###1）「if」のみ
```csharp 
    void Experiment()
    {
        if (true)
        {
            Debug.Log("アジング");
        }
    }
```
![01.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232643/29f72188-4300-1d0a-0fcc-01d112822250.jpeg)

--


###2）「if」+「else if 」

```csharp 
    void Experiment()
    {
        if (false)
        {
            Debug.Log("アジング");
        }
        else if (true)
        {
            Debug.Log("エギング");
        }
    }
```
![02.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232643/9c257e50-ba75-41f7-675c-53426e2e19ed.jpeg)


--


###3）「if」+「else if 」2　（アジングにもエギングにも行きたい場合）

```csharp 
    void Experiment()
    {
        if (true)
        {
            Debug.Log("アジング");
        }
        else if (true)
        {
            Debug.Log("エギング");
        }
    }
```


![01.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232643/ec067713-21ff-5ecf-15b5-c2a41f914a63.jpeg)


これ、ありえないパターンなのか。（行けない）
ifでもしも（条件1）、、、
else ifでそうでなくて（条件2）
条件1が満たされなかったときの条件2発動的なやつか

--

###4）結果、ガチジギングになった場合。

```csharp 
    void Experiment()
    {
        if (false)
        {
            Debug.Log("アジング");
        }
        else if (false)
        {
            Debug.Log("エギング");
        }
        else
        {
            Debug.Log("ガチジギング");
        }
    }
```

![03.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232643/945d5a80-322c-2eff-59ee-21ee2a174a44.jpeg)

elseはそれ以外的な。

--


##ここから本題
###5）あたまにもう一つ「if」をつけてみた
```csharp 
    void Experiment()
    {
        if (true)
        {
            if (true)
            {
                Debug.Log("アジング");
            }
            else if (false)
            {
                Debug.Log("エギング");
            }
            else
            {
                Debug.Log("ガチジギング");
            }
        }
    }
```

![01.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232643/c1c3c499-8d0c-c47b-dc04-4137aceb7698.jpeg)



**↓↓↓**
**これも不可。最初のifがfalse**
**最初のifがtrueでも、その下にtrueは1通りしか認められない。**

```csharp 
    void Experiment()
    {
        if (false)
        {
            if (true)
            {
                Debug.Log("アジング");
            }
            else if (false)
            {
                Debug.Log("エギング");
            }
            else
            {
                Debug.Log("ガチジギング");
            }
        }
    }
```

--


###6）もう一つ入れ子の中に「if」をつけてみて

```csharp
    void Experiment()
    {
        if (true)
        {
            //もしも
            if (true)
            {
                Debug.Log("アジング");
            }

            if (true)
            {
                Debug.Log("カサゴ狙い");
            }

            else if (false)
            {
                Debug.Log("エギング");
            }

            else
            {
                Debug.Log("ガチジギング");
            }
        }
    }
```

![04.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232643/5fd1f244-6a6e-47df-f385-7da23bb2b698.jpeg)


###これはいけるくち
--

#まとめると
##入れ子のOKパターンは
####1）最初のifがtrueでその下もtrueが1個####

- if **(true)**
 - if **(true)**
 - else if **(false)**
 - else

- if **(true)**
 - if **(false)**
 - else if **(true)**
 - else
 
- if **(true)**
 - if **(false)**
 - else if **(false)**
 - **else**


####2）最初のifがtrueでその下にifが2個####
- if **(true)**
 - if **(true)**
 - if **(true)**
 - else if **(false)**
 - **else**




##入れ子のNGパターン

####1）最初のifがfalse####
- if **(false)**
 - if　**(true)**
 - else if **(false)**
 - else


####2）最初のifがtrueでも、その下trueが2個

- if **(true)**
 - if **(true)**
 - else if **(true)**
 - else

##ちなみに「}」の位置変えたら
if **{}**if **{}**と、if **{**if **{}}**は結果がどう違うのか？を確認する実験。

```csharp
    void Experiment()
    {
        //
        if (true)
        {
            Debug.Log("アジング");

            if (true)
            {
                Debug.Log("カサゴ狙い");
            }
        }
    }
```
これは通って同じ結果になるけど

```csharp
    void Experiment()
    {
        //
        if (true)
        {
            Debug.Log("アジング");

            else if
            {
                Debug.Log("カサゴ狙い");
            }
        }
    }

```
else ifやelseは「とたんに」通らなくなる。



#最後に

```csharp
    void En100()
    {
        //100円の処理
        for (int j = 500; j >= 0; j--)
        {
            //もし「j」を100で割れるなら
            if (j%100==0)
            {
                //もし「j」が500ならallAnsorに+1
                if (j == 500)
                {
                    allAnsor++;
                }
                //それ以外の時は、CalcJに値を代入する。
                else
                {
                    CalcJ = j;
                }
            }
        }
    }
```
これが、ゆうこときかないやつだったのですけど
ifの時もelseの時も、両方結果が欲しかった。
なんでelseで0が返ってくるのか？から始まった。

両方結果欲しいんなら、okパターンの（2）必殺**入れ子if if**で解決できるかも。