alienHRNの訓練日記

IT業界初心者で勉強中。

20200802 for文と☆彡

var star = '';

以下のような画面になるよう出力せよ
「star.html」と「star.js」を使って解答する

■■■問1■■■

────────ココカラ

★★★★★

────────ココマデ


// 問題1解答記述欄
star = '';
// for文を記述して解答
for (var i = 0i < 5; ++i)
// iは0から設定、0~4の順番で横に表示させる。
++iはカウントアップさせるという意味

{
  star += '★'

  console.log('★');
}

document.getElementById('display1').innerHTML = star;
//display1にstarを表示させる。

■■■問2■■■

────────ココカラ

★★★★★
★★★★★
★★★★★
★★★★★
★★★★★

────────ココマデ


// 問題2解答記述欄
star = '';
// for文を記述して解答
for (var i = 0i < 5; ++i)
//0~4(0番目を含むことに注意)の順番で横に表示させる。
{
  for (var j = 0j < 5j++)
  //行を管理。この場合は0~4行目(0行目を含むことに注意)まで設定。
  {
    star += '★'
    //★を横に5つ、5行並べる
  }
  star += '<br>\n'
  //ブラウザ・コンソール上で★5文字毎に改行する。
}
console.log(star);
document.getElementById('display2').innerHTML = star;

■■■問3■■■

────────ココカラ


★★
★★★
★★★★
★★★★★

────────ココマデ


// 問題3解答記述欄
star = '';
// for文を記述して解答
for (var i = 0i < 6; ++i)
//iは0から設定、0~5の順番で横に表示させる。
{
  for (j = 0j < i; ++j)
  //jは0から設定、i番目未満を行にそろえる。
  //i=0の時無し。i=1の時j=0、i=2の時j=0,1、i=3の時j=0,1,2、
i=4の時j=0,1,2,3、i=5の時j=0,1,2,3,4
  {
    {
      star += '★'
    }

  }
  star += '<br>\n'
  //ブラウザ・コンソール上で行の最後毎に改行する。
}
console.log(star);
document.getElementById('display3').innerHTML = star;




■■■問4■■■

────────ココカラ


★☆
★★☆
★★★☆
★★★★☆

────────ココマデ

// 問題4解答記述欄
star = '';
// for文を記述して解答
for (var i = 0i < 5; ++i) {
  for (j = 0j < i; ++j) {
    star += '★'
  }
  star += '☆<br>\n'
  //改行するタイミングに☆をつける
  //0行目は☆1、1行目は★1、☆1、2行目は★2、☆1・・・
}
console.log(star);
document.getElementById('display4').innerHTML = star;






■■■問5■■■

────────ココカラ

☆★★★★
★☆★★★
★★☆★★
★★★☆★
★★★★☆

────────ココマデ

// 問題5解答記述欄
star = '';
// for文を記述して解答
for (var i = 0i < 5i++)
//0番目~4番目
{
  for (var j = 0j < 5j += 1)
  //0行目から4行目
  //j+=1→j=j+1という意味!
  {
    if (j != i)
    // 不等価演算子「!=」jとi、等しくなければtrue、等しければfalse
    //!外すと無限処理発動 注意
    {
      star += '★';
    } else {
      star += '☆';
    }
  }
  star += '<br>'
}

document.getElementById('display5').innerHTML = star;



■■■問6■■■

────────ココカラ

★★★★★
★★★★
★★★
★★

────────ココマデ


// 問題6解答記述欄
star = '';
// for文を記述して解答
for (var i = 0i < 5; ++i) {
  for (j = 5i < j; --j)
  //jのスタートを5に設定。jはカウントダウン。
  //問3の逆バージョン
  {
    star += '★'
  }
  star += '<br>\n'
}
console.log(star);
document.getElementById('display6').innerHTML = star;

■■■問7■■■

────────ココカラ

★☆★☆★
☆★☆★☆
★☆★☆★
☆★☆★☆
★☆★☆★

────────ココマデ


// 問題7解答記述欄
star = '';
// for文を記述して解答
for (var i = 1i <= 25i++)
//星を25個(5*5)横に並べていることをイメージ
//1個からカウントアップ
{
  if (i % 2 == 1) {
    star += '★'
  }
  //iを2で割ったときに余りがある時は★
  else {
    star += '☆'
  }
  //そうじゃないときは☆
  if (i % 5 == 0) {
    star += '<br>\n'
  };
  //iを5で割ったときに余りがないときは改行。
  //要は5番目になったときに改行
};
document.getElementById('display7').innerHTML = star;
 
-------------------------
課題で7問ほど☆の出力問題
一通り自力でやってみたがこれは誰かに教えてもらうというよりはひたすら
試行錯誤をするに限るんじゃないかなと。
教えてもらえばその場で正解がわかるが理解することとはまた別の話。
良い頭体操になった。