2025年12月17日
名前
茅野壮甫
自分で作った図形(コードと画像)
✅ 練習問題 3-7-1
function setup() {
let n = 0;
while (true) {
n++;
let dice = int(random() * 6) + 1;
print(n + "回目:" + dice + "が出た");
if (dice === 6) {
print("6が出たので終了します!");
break; // ループを抜ける
}
}
print("サイコロを振った回数:" + n + "回");
}📷 実行結果

✅ 練習問題 3-7-2
function setup() {
let tickets = 7; // 所持チケット枚数
let n = 0; // 引いた回数
while (true) {
n++;
r = random();
if (r < 0.03) {
print(n + "回目: ★★★★★");
print("合計"+n+"回引きました")
break
} else if (r < 0.03 + 0.07) {
print(n + "回目: ★★★★");
} else if (r < 0.03 + 0.07 + 0.15) {
print(n + "回目: ★★★");
} else if (r < 0.03 + 0.07 + 0.15 + 0.30) {
print(n + "回目: ★★");
} else {
print(n + "回目: ★");
}
tickets--;
if(tickets===0){
print("チケットがなくなったのでガチャを終了します。");
break
}
}
}📷 実行結果

✅ 練習問題 3-7-3
function setup() {
let tickets = 30; // 手持ちチケット
let n = 0; // 累計回数
let lose = 0; // 直近の★3以下の回数
while (tickets > 0) {
tickets--;
n++;
// 確定保証
if (lose == 9) {
print(n + "回目: ★4(★★★★)確定!");
lose = 0;
continue; // 通常抽選を飛ばして次のループへ
}
// 通常抽選
let r = random();
if (r < 0.03) {
print(n + "回目: ★5(★★★★★)");
lose = 0;
} else if (r < 0.03 + 0.07) {
print(n + "回目: ★4(★★★★)");
lose = 0;
} else if (r < 0.03 + 0.07 + 0.30) {
print(n + "回目: ★3(★★★)");
lose++;
} else {
print(n + "回目: ★2(★★)");
lose++;
}
}
print("合計" + n + "回引きました");
}📷 実行結果

✅ 練習問題 3-7-4
このガチャでは★5まで排出対象になっているのに最低保証は★4以上確定ではなく★4確定になっているから。
まとめ・感想
while文でbreakやcontinueを使えば条件を無視してループを止めることやスキップをすることができる。