7-7■=(イコール)ボタンを設定してみよう!

第7章 電卓を作ってみよう!

さぁ、それではプラスボタンで出来なかった計算そのものをイコールボタンでやっていきましょう。

 

まずは作業の単純化と、言語化ですね。

 

と、ここで詰まってしまった方は多いのではないでしょうか。

そういう時はマイルストンです。

やりたいことだけを見つめていても出来ないこともあります。

 

途中に目標点を置くことで、ゴールまで進めるようになります。

 

てことで、矛盾はしますがとりあえずプラスボタン以外のことは忘れて、足し算だけを実現しましょう。

 

画面に表示されている今の数字=A2セルの値

これと、

プラスボタンを押した時に一時記憶された数字=C2セルのストック値

を足した結果をA2セルに表示。

 

そして、B2セルはどうしましょう?

ロックする必要があるのかどうか。

 

ボタンを押した後で、数字を押したときにされるアクションは・・・。

続きに数字が出てたらおかしいから、ロックが正しいですね。

ということでB2セルは1にしましょう。

 

C2セルは、どうしましょう?

一回押しただけなら、どっちでもいい気がしますが、2回押して2度同じ処理をさせるのかどうか。

電卓の種類によっては、ありそうですがイコールを押したんだからクリアされていい気がしますね。

ということでC2セルはnull値にしときましょう。

 

D2セルは?

これもnull値でいいですね。

 

さぁ、コードにしましょう。

function button_equal() {

if ((A2 != null && A2 != “” && A2 != 0 )){

var i = A2+C2;

sheet.getRange(“A2”).setValue(i);

sheet.getRange(“B2”).setValue(1);

sheet.getRange(“C2”).setValue(null);

sheet.getRange(“D2”).setValue(null);

} else {

}

}

どうでしょう?

足し算だけはとりあえず出来ましたか?

 

さぁ、ここからが問題ですね。

足し算以外だった時を想定して、足し算のテストをする・・・。

 

まずはIF文でやってみましょうか。

もしも足し算だったら

足し算をする

足し算ではなく、引き算だったら

引き算をする

どちらでもなく、掛け算だったら

掛け算をする

どれでもなく、割り算だったら

割り算をする

どれでも無かったら、エラーを返す。もしくは無視する。

 

こんな感じですかね。

 

コードが長くなるので省略しますが、気になる方は試してみましょう。

 

コードを短くするなら、やっぱりswitch case文ですかね。

D2セルが

+なら足し算

-なら引き算

*なら掛け算

/なら割り算

 

まとまった感じしますね。

では、これをさっきのコードに足してこんな感じにしましょう。

function button_equal() {

if ((A2 != null && A2 != “” && A2 != 0 )){

switch (D2) {

case “+”:

var i = A2+C2;

break;

case “-“:

var i = C2-A2;

break;

case “*”:

var i = A2*C2;

break;

case “/”:

var i = A2/C2;

break;

default:

var i = A2;

break;

}

sheet.getRange(“A2”).setValue(i);

sheet.getRange(“B2”).setValue(1);

sheet.getRange(“C2”).setValue(null);

sheet.getRange(“D2”).setValue(null);

} else {

}

}

多少長くなりましたが、それなりにまとまったのではないでしょうか。

ということは、次の章のマイナスボタン達のコードは決まってきましたね。

 

もう次の章はいらないんじゃないかな・・・。

 

だって、プラスボタンのD2セルに入れる値を変えればいいだけでしょ?

 

ここまでついてきた皆さんには簡単すぎますよね?

コメント

タイトルとURLをコピーしました