p5js 03-06 繰り返し(while文1)

学習日

2026年3月11日

名前

堀内道

自分で作った図形(コードと画像)

✅ 練習問題 3-6-1

function setup() {
  createCanvas(400, 400);
  background(220);
  strokeWeight(3);

  let y = 0;
  while (y < height) {
    line(0, y, width, y);
    y += 10;
  }
}

📷 実行結果

✅ 練習問題 3-6-2

function setup() {
  createCanvas(300, 300);
  background(220);
  strokeWeight(3);

  let y = 0;
  while (y < height) {
    line(0, y, width, y);
    y += 30;
    
  }
}

📷 実行結果

✅ 練習問題 3-6-3

function setup() {
  let i = 0;
  
  while (i < 5) {
    print("こんにちは!");
    i++;  
  } 
}

📷 実行結果

練習問題 3-6-5

function setup() {
  let n = 0; // 引いた回数
  let count = 0;

  while (count < 3) {
    n++;

    r = random();

    if (r < 0.03) {
      print(n + "回目: ★★★★★");
      count++;
    } 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.3) {
      print(n + "回目: ★★");
    } else {
      print(n + "回目: ★");
    }
  }

  print("星5が" + count + "個出ました" + n + "回引きました!");
}

📷 実行結果

練習問題 3-6-6

function setup() {
  let n = 0; // 引いた回数
  let count = 0;
  let tickets = 7;

  while (count < 2,tickets > 0) {
    n++;

    r = random();

    if (r < 0.03) {
      print(n + "回目: ★★★★★");
      count++;
    } 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.3) {
      print(n + "回目: ★★");
    } else {
      print(n + "回目: ★");
    }
    tickets--;
  }

  print("星5が" + count + "個出ました" + n + "回引きました!");
}

📷 実行結果

練習問題 3-6-7

x++がなく更新されないので無限ループしてしまう。

練習問題 3-6-

function setup() {
  createCanvas(300, 300);
  background(215,230,241);
  strokeWeight(4);
  stroke(180,210,232);

  let x = 0;
  let len = 0;
  
  while(x < 300){
   let len = (Math.floor(random(20)));
   line(x, 150, x + len, 150);
    x += len+10;
}
}

📷 実行結果

✅ 練習問題 3-6-

function setup() {
  createCanvas(300, 300);
  background(215, 230, 241);
  strokeWeight(4);
  stroke(180, 210, 232);

  let x = 0;
  let len = 0;
  let y = 0;

  while (x < 300 && y < 300) {
    let len = Math.floor(random(20));
    line(x, y, x + len, y);
    x += len + 10;

    if (x >= 300) {
      x = 0;
      y += 10;
    }
  }
}

📷 実行結果

まとめ・感想

while( )に条件を入れて、X+=10みたいのを作るだけ( )の中の条件になるまで

繰り返してくれるのが便利だと思った。

コードを作るときに更新するのを忘れて無限ループすることがあったので気を付けたい。

練習問題3-7-9のif ( x >= 300 )の{をつけるのを忘れてそれを気づくのに

スゲー時間がかってしまったので、しっかりとプログラムを見てやりたい。

1件のコメント

コメントする