課題【練習問題(変数/関数/処理の流れ)】ーNo.008
課題内容
- <概要>
- 2つの配列(AとBとして今後説明します)に、
- ランダムな9個の数値を入れます。
- また、空の配列(CとDとEとして今後説明します)を用意します。
- 繰り返しごとに、配列Aと配列Bの値を比較します。
- 比較は、配列Aの1番目の要素と
- 配列Bの1番目の要素を比較するように
- それぞれ順番に配列Aと配列Bの値を比較してください。
- <比較した結果の判定>
- 配列Aの値が大きい場合:配列Cに結果を入れる(文字列)
- 配列Bの値が大きい場合:配列Dに結果を入れる(文字列)
- 配列Aと配列Bの値が同じ場合:配列Eに結果を入れる(文字列)
- 文字列としては、
- 「配列AのXXと配列BのXXは〇〇」
- を配列C、D、Eに入れましょう。
- 〇〇は、どっちが大きかったか、同じだったかを入れる。
- <結果>
- 結果として、コンソールには、
- 配列C、D、Eの値を元に
- 「配列Aの値が大きいもの」
- :ここに結果
- 「配列Bの値が大きいもの」
- :ここに結果
- 「配列Aと配列Bの値が同じもの」
- :ここに結果
- を表示してみましょう。
出力結果
例えば、
配列の値として、
let sampleListA = [1,2,3,4,5,6,7,8,9];
let sampleListB = [9,8,7,6,5,4,3,2,1];
という値を入れている配列を準備した場合は、
コンソールには、このように表示されます。
配列Aの値が大きいもの
配列Aの6と配列Bの4はAの方が大きい
配列Aの7と配列Bの3はAの方が大きい
配列Aの8と配列Bの2はAの方が大きい
配列Aの9と配列Bの1はAの方が大きい
配列Bの値が大きいもの
配列Aの1と配列Bの9はBの方が大きい
配列Aの2と配列Bの8はBの方が大きい
配列Aの3と配列Bの7はBの方が大きい
配列Aの4と配列Bの6はBの方が大きい
配列Aと配列Bの値が同じもの
配列Aの5と配列Bの5はAとBの値は同じ
ポイント(繰り返し処理)
今回の課題では、
for文を使って繰り返し処理をおこないましょう。
繰り返すfor文の方法は、こちらの課題を参考にしましょう。
答え
// 値の入った配列を用意します。
// わかりやすく、1から順に値を入れています。
// 他の値を入れたときの動きも試しておきましょう。
let sampleListA = [1,2,3,4,5,6,7,8,9];
let sampleListB = [9,8,7,6,5,4,3,2,1];
//Aの方が値が大きい結果を入れる配列
let sampleListC = [];
//Bの方が値が大きい結果を入れる配列
let sampleListD = [];
//AとBの方が値が同じ結果を入れる配列
let sampleListE = [];
// for文で10回の繰り返しをする
for(let i=0;i<9;i++) {
let baseStr = '配列Aの'+sampleListA[i]+'と配列Bの'+sampleListB[i];
// 配列の要素について、特定の値と比較する
if(sampleListA[i] > sampleListB[i]) {
//結果の文字列を配列に追加
sampleListC.push(baseStr+'はAの方が大きい');
}
else if(sampleListA[i] < sampleListB[i]) {
//結果の文字列を配列に追加
sampleListD.push(baseStr+'はBの方が大きい');
}
else {
//結果の文字列を配列に追加
sampleListE.push(baseStr+'はAとBの値は同じ');
}
}
// コンソールに表示
console.log('配列Aの値が大きいもの');
for(let idxC=0;idxC<sampleListC.length;idxC++) {
console.log(sampleListC[idxC]);
}
console.log('配列Bの値が大きいもの');
for(let idxD=0;idxD<sampleListD.length;idxD++) {
console.log(sampleListD[idxD]);
}
console.log('配列Aと配列Bの値が同じもの ');
for(let idxE=0;idxE<sampleListE.length;idxE++) {
console.log(sampleListE[idxE]);
}