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

2025年11月26日

名前

茅野壮甫

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

✅ 練習問題 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+=1;
  }
}

📷 実行結果

✅ 練習問題 3-6-4

function setup() {
  let tickets = 7;  // 所持チケット枚数
  let n = 0;    // 引いた回数

  while (tickets > 0) {
    n++;

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

  print("チケットがなくなったのでガチャを終了します。");
}

📷 実行結果

✅ 練習問題 3-6-5

function setup() {
  let count = 0;
  let n = 0;

  while (count < 3) {
    n++;

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

  }

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

📷 実行結果

✅ 練習問題 3-6-6

function setup() {
  let count = 0;
  let n = 0;
  let tickets = 40;

  while (count < 2&&tickets > 0) {
    n++;
    tickets-=1;

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

  }

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

📷 実行結果

✅ 練習問題 3-6-7

function setup() {
  let x = 0;
  while (x < 100) {
    print(x);
    x += 10;
    if (x > 50) {
      x = 0;
    }
  }
}

このコードはxが100より上になるまで繰り返すようになっているのに下のif文でxが50より下の時xが0になるようになっていてxがプラスされる値も10なので無限ループになっている。

✅ 練習問題 3-6-8

function setup(){
  createCanvas(300,300);
  background(216,230,243);
  strokeWeight(4);
  stroke(177,208,231);
  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-9

function setup(){
  createCanvas(300,300);
  background(216,230,243);
  strokeWeight(4);
  stroke(177,208,231);
  let x=0;
  let y=0;
  let len=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文を使うことで条件だけ決めてそれが満たされるまで繰り返すことができる。でも条件が満たされないコードにしてしまうと無限ループになってしまうのでそこの注意が必要。

コメントする