今回は、まず §1.5で書いたスクリプトを修正して、入力された文字列を数値として扱えるようにするね。 | |
inputString メソッドは数値を入力しても文字列だと見なしちゃうから、value と plus1 が文字列型になっちゃうんだよね。 | |
そう。 でも §1.6 で文字列を数値に変換する方法がわかったわけだから、value と plus1 を整数型にできるよね。 |
|
うん。 単項 + 演算子を使って、文字列を数値に変換するんだよね。 |
|
ん、そうそう。 じゃ、スクリプトを書き直してみよっか。 |
|
え〜っと… value を整数型に変換すれば、plus1 も整数型になるはずだから… |
<入力を数値として扱えるようにしたスクリプト>
こんな感じかな。 じゃ、実行してみるね。 |
|
ん。 |
<実行結果>
うん、今度はちゃんと『101』になったよ! | |
これでOKだね。 ちなみに、上のスクリプトはもうちょっと簡単に書けるんだ。 こんなふうに。 |
+ 演算子ってメソッドに直接つけちゃってもいいの? | |
うん。 『100』って入力して OK ボタンを押すと、 inputString メソッドのところは "100" に置き換わって… |
っていうスクリプトと同じになるからね。 | |
あ、そっか。確かにちゃんと 101 になるね。 | |
じゃ、次は今の時刻から 100 分後の時間を計算するスクリプトね。 | |
はーい。 | |
ただ、22 時 20 分以降だと、100 分後には日付が変わっちゃうわけだけど、
1 日後の日付を計算するのはちょっと面倒だから、今回は日付の計算はパスするね。 つまり、22 時 20 分の 100 分後は単に 0 時 0 分ってことにして、日付は考えないから。 |
|
うん、りょーかい。 | |
じゃあ、まずは今の時間を取得するスクリプトから。 これは §1.4 でやってるから大丈夫だよね。 |
|
うん、大丈夫だよ。 | |
あ、あと今回は時と分だけでいいからね。 | |
わかった。 だったら… |
<今の時・分を取得するスクリプト>
これでいいよね? | |
ん、OK。 じゃあ、今の時間から 100 分後を計算するスクリプトを書いてみるね。 |
<今から 100 分後の時・分を表示するスクリプト>
う〜ん、使われてる演算子は §1.6 で出てきたのばっかりだけど、 どうやって 100 分後の時間を計算してるのかよくわかんない… | |
それじゃ説明していくね。 | |
うん。 | |
まず、1〜3行目はわかるよね。 | |
3行目で分の値に 100 を足してるだけだよね。 | |
ん、そう。 で、分の値に 100 を足すわけだから、当然、分の値は 60 以上になるよね。 |
|
うん、そだね。 | |
例えば、今が 30 分だったとしたら、100 分足すと 130 分になるよね。 130 分ってのは 2 時間 10 分のことだから、 minute を 10 にして、hour には 2 を足せばいいわけだよね。 |
|
うん、確かにそうなるね。 | |
じゃあ、130 分を 2 時間と 10 分に分解するためには、どうすればいいと思う? | |
えっと… 1 時間は 60 分だから、分の値を 60 で割ればいいのかな…? | |
その結果は? | |
130 ÷ 60 だから、2 余り 10 だね。 これで分解できたよ。 |
|
じゃ、それを TJS の式で書いてみて。 | |
えっとぉ…割り算の商を計算するのが \ 演算子で、 余りを計算するのが % 演算子だから… |
こんな感じかな。 | |
ん、そうそう。 じゃ、後は hour に商の値を足して、minute の値は余りにすればいいよね。 |
|
ってことは… |
こうかな。 | |
うん、OK。 後は、hour の値が 24 以上になっちゃうかもしれないから、 分の時と同じ考え方で、hour も 24 で割った余りにすればいいよね。 |
|
うん、そだね。 じゃあ… |
こうだよね? | |
ん、じゃ最後に、代入演算子を使ってこのスクリプトを書き換えてみて。 | |
えっと、代入演算子を使うと += とか %= になるから… |
はい、これで完成! | |
えっ? …あ、ほんとだ。4〜6行目と同じスクリプトになってる! | |
んじゃ実行してみよっか。 | |
うん! |
<実行結果>
えっと、今は 22 時 52 分だから、100 分足すと…… うん、ちゃんと 0 時 32 分になってるね! |
|
じゃあ次は『100分』のところを、inputString メソッドで入力された値を使うようにしてみて。 『100』になってるところを inputString メソッドで取得した値に変えればできるよね。 |
|
うん、じゃやってみるね。 |
<入力を受け取れるようにしたスクリプト>
できたよ。 実行してみてもいいかな…? |
|
ん、やってみて。 | |
じゃあ、今度は 200 分後にしてみるね。 |
これで OK、と。 |
<実行結果>
えっと、今 23 時 8 分で、200 分後は 3 時間 20 分後だから… 2 時 28 分だよね。 表示もちゃんと 2 時 28 分になってるよ! |
|
うん、スクリプトもこれでOK! 今回はちょっと長くなっちゃったけど、これで §1.5 の目標達成だね。 |
|
うんっ! | |
じゃ、今回はここまで。 次回はまた新しいことに挑戦するよ。 |
|
は〜い! | |
それじゃ、また次回ね! |