講義メモ 後半

アレンジ演習:chap3_5_2b

・2×3と3×2は同じなので、九九表の右上半分は省略しよう
【出力結果】
1 
2 4 
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
ヒント:
・内側の繰返しの中で、xがy以上の時のみ連結すれば良い

作成例①:if文を用いる

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class chap3_5_2b : MonoBehaviour {
    void Start() {
        for (int x = 1; x < 10; x++) { //1の段から9の段まで繰り返す
            string s = ""; //連結用の文字列を用意
            for (int y = 1; y < 10; y++) { //×1から×9まで繰り返す
                if (x >= y) {
                    s = s + x * y + " "; //文字列に積と空白を連結
                }
            } //内側のforブロック(繰返し内容)の終わり
            Debug.Log(s); //出来上がった文字列を表示
        } //外側のforブロック(繰返し内容)の終わり
    }
    void Update() {

    }
}

作成例②:内側のforの継続条件を書き換える

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class chap3_5_2b : MonoBehaviour {
    void Start() {
        for (int x = 1; x < 10; x++) { //1の段から9の段まで繰り返す
            string s = ""; //連結用の文字列を用意
            for (int y = 1; y <= x; y++) { //1倍からx倍まで繰り返す
                s = s + x * y + " "; //文字列に積と空白を連結
            } //内側のforブロック(繰返し内容)の終わり
            Debug.Log(s); //出来上がった文字列を表示
        } //外側のforブロック(繰返し内容)の終わり
    }
    void Update() {

    }
}

補足:2重ループとbreakについて

・2重ループの内側の繰返しの中でbreakすると、内側の繰返しからの脱出になり、外側の繰返しは続行されるので注意

アレンジ演習:chap3_5_2c

・内側の繰返しで積が50以上になったら脱出し、次の段に進むようにしよう
【出力結果】
1 
2 4 
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 
9 18 27 36 45 

作成例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class chap3_5_2c : MonoBehaviour {
    void Start() {
        for (int x = 1; x < 10; x++) { //1の段から9の段まで繰り返す
            string s = ""; //連結用の文字列を用意
            for (int y = 1; y <= x; y++) { //1倍からx倍まで繰り返す
                if (x * y >= 50) { //積が50以上なら
                    break; //内側の繰返しを抜ける
                }
                s = s + x * y + " "; //文字列に積と空白を連結
            } //内側のforブロック(繰返し内容)の終わり
            Debug.Log(s); //出来上がった文字列を表示
        } //外側のforブロック(繰返し内容)の終わり
    }
    void Update() {

    }
}

補足:2重ループとbreakについて(続き)

・2重ループの内側の繰返しの中でbreakすると、内側の繰返しからの脱出になり、外側の繰返しは続行されるので注意
・外側の繰返しも脱出したい場合は、外側用のbreakを記述する

アレンジ演習:chap3_5_2d

・内側の繰返しで積が50以上になったら脱出し、その段を出力して終わる(次の段に進まない)ようにしよう
【出力結果】
1 
2 4 
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 

作成例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class chap3_5_2d : MonoBehaviour {
    void Start() {
        for (int x = 1; x < 10; x++) { //1の段から9の段まで繰り返す
            bool endf = false; //【追加】終了フラグをオフにしておく
            string s = ""; //連結用の文字列を用意
            for (int y = 1; y <= x; y++) { //1倍からx倍まで繰り返す
                if (x * y >= 50) { //積が50以上なら
                    endf = true; //【追加】終了フラグをオンにする
                    break; //内側の繰返しを抜ける
                }
                s = s + x * y + " "; //文字列に積と空白を連結
            } //内側のforブロック(繰返し内容)の終わり
            Debug.Log(s); //出来上がった文字列を表示
            if (endf) { //【以下追加】終了フラグがオン?
                break; //外側の繰返しも抜ける
            }
        } //外側のforブロック(繰返し内容)の終わり
    }
    void Update() {

    }
}

補足:2重ループによる図形処理

・棒グラフ風の表現を2重ループで行うことができる
例:
1:■
2:■■
3:■■■
4:■■■■
5:■■■■■

アレンジ演習:chap3_5_2e

・int型のパブリック変数aで開始値、bで終了値を得て、aからbまでカウントダウンする棒グラフを表示しよう
例:aが7でbが4なら
7:■■■■■■■
6:■■■■■■
5:■■■■■
4:■■■■
ヒント
① 外側でカウンタiをaからbまでデクリメントしながら②から⑤を繰返す
② 連結用の文字列sをiと":"を連結した文字列で初期化
③ 内側でカウンタjを0からi未満までインクリメントしながら④を繰返す
④ 文字列sに"■"を連結
⑤ 内側の繰返しの後で、文字列sを出力

作成例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class chap3_5_2e : MonoBehaviour {
    public int a, b;
    void Start() {
        for (int i = a; i >= b; i--) { //カウンタiをaからbまでデクリメントしながら繰返す
            string s = i + ":"; //連結用の文字列を用意
            for (int j = 0; j < i; j++) { //i回繰り返す
                s += "■"; //文字列に■を連結
            } //内側のforブロック(繰返し内容)の終わり
            Debug.Log(s); //出来上がった文字列を表示
        } //外側のforブロック(繰返し内容)の終わり
    }
    void Update() {

    }
}

アレンジ演習:chap3_5_2f

・乱数で1から9を5回得て、5本の横棒グラフを表示しよう
例:
7:■■■■■■■
2:■■
6:■■■■■■
5:■■■■■
4:■■■■
ヒント:1から9の乱数を得るには
  System.Random r = new System.Random(); //乱数クラスのオブジェクトを生成(1度でOK)
 :
  int n = r.Next(9) + 1; //1から9までのどれかになる

提出:アレンジ演習:chap3_5_2f

コメントを残す

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