フリーランス7見出し

フリーランスプログラマーになるには 11プログラミングをしてみる - 繰り返し2

このノートはフリーランスプログラマーとはどういったものなのか、どうしたらなれるのか、またどのように生計をたてるのか等を、私の経験をもとに実情を解説するシリーズの一つです。

今回は前回に続き繰り返し処理をJavaScriptでプログラミングしながら解説します。

ATOMにprogram4.jsを作成し、コーディングすると楽だと思います。予約文字とかに色つきますし。ATOMでのファイル作成手順は上記の初回を参照してください。

練習問題1
for文を使って以下の画像のように表示してください。

ヒント
星が減っていく前半、星が増えていく後半に分けて考えると良いかと思います。

答え

let maxNumber = 9;
let middle = maxNumber / 2;
for(let i = 0; i < maxNumber; i ++){
 let stars = '';
 // 星が減っていく部分です。
 for(let d = 0; d < middle - i; d++){
   stars += '*';
 }
 // 半分を超えたとき、starsにはまだ何も設定されていないので一つ足しておきます。
 if(stars === ''){
   stars = '*';
 }
 // 星が増えていく部分です。
 for(let d = middle; d < i; d++){
   stars += '*';
 }
 console.log(stars);
}

解説
簡単にできるかな、と取り組んでみたら中々うまくできずに泥臭いコーディングになってしまいました。もう少しうまいことできそうですが、ポイントは外側のfor文の変数の値が増えていくにつれて、最初は星が減っていくのに半分以降は増えるところかと。ここの計算を上手いことできるとすっきりとしたコーディングになりそうです。

JavaScriptの標準関数であるMath.abs関数(絶対値を取得できる関数。つまり2なら2を、-2なら2を取得できる)を使用するともう少しすっきり記述できます。

let maxNumber = 9;
let middle = maxNumber / 2;
for(let i = 0; i < maxNumber; i ++){
 let stars = '';
 for(let d = 0; d < Math.abs(middle - i); d++){
   stars += '*';
 }
 if(i > middle){
   stars += '*';	// 半分以降は追加で星を足す
 }
 console.log(stars);
}


練習問題2
for文を使って以下の画像のように表示してください。

ヒント
練習問題1と同様に星が増えていく前半、星が減っていく後半に分けて考えると良いかと思います。

答え

let maxNumber = 9;
let middle = maxNumber / 2;
for(let i = 0; i < maxNumber; i ++){
 let stars = '';
 // 星が増えていく部分です。
 for(let d = 0; i < middle && d < i+1; d++){
   stars += '*';
 }
 // 星が減っていく部分です。
 for(let d = 0; middle <= i && d < maxNumber - i; d++){
   stars += '*';
 }  
 console.log(stars);
}

解説
ネストしたfor文の条件に「i < middle」と「middle <= i」を設定して半分未満、半分以上を制御しています。ネストしたfor文をif文で囲っても同じことができますね。

ここから先は

0字
4つ以上のノートを読まれる場合はこちらのマガジンを購読されたほうがお得です。

プログラミング未経験だけどフリーランスプログラマーに興味のある方に向けて、フリーランスプログラマーの実情や、フリーランスのなり方、税金の解…

期間限定 PayPay支払いすると抽選でお得に!

サポートしていただけると何か、こう、認められたようで大変嬉しいです。