練習問題 |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、テストだ。
この問題をプログラムで計算してくれ。
KNMain.javaのメイン関数内に
答えを書いてくれ。
メイン関数内に
前に書いた文(20行目~)は
コメントアウトでもしてくれ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
 |
|
 |
|
練習問題 1 |
|
問1:次の質問の結果を画面に表示しなさい。 |
あるところに食いしん坊の女の子がいました。
昼に100円のあめを5袋買いました。
夜に200円のビスケット3箱買いました。
質問:
1、昼の合計はいくら?
2、夜の合計はいくら?
3、昼と夜の合計はいくら? |
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ちょ、ちょっと、この内容って、
また・・・
もー、油断も隙もないんだから~。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
どこから
見てるのよー
ヘンタイー。
これはみんなが
来るって言うから
買ったのー! |
 |
|
 |
ふふーん♪
お前だなんて
誰も言ってないぜ。
でも、普通、
飴玉こんなに
いるかあ?
このアメダマンめ。 |
|
|
|
|
|
 |
|
 |
|
練習問題1 ことの解答コード(KotoTest2のKNMain.java)17行目~ |
|
・・・ |
|
|
|
017 |
|
public static void
main(String[] args) { |
|
018 |
|
// TODO code
application logic here |
|
019 |
|
|
|
020 |
|
//System.out.println((2048
* (1024 + 1024)) - 8658 + |
|
021 |
|
// 896 * 1024); |
|
022 |
|
|
|
023 |
|
//昼の合計を表示 |
|
024 |
|
System.out.println("昼の合計は"
+ 100 * 5 + "円です。"); |
|
025 |
|
|
|
026 |
|
//夜の合計を表示 |
|
027 |
|
System.out.println("夜の合計は"
+ 200 * 3 + "円です。"); |
|
028 |
|
|
|
029 |
|
//昼と夜の合計を表示 |
|
030 |
|
System.out.println("昼と夜の合計は"
+ ((100 * 5) + (200 * 3)) + |
|
031 |
|
"円です。"); |
|
032 |
|
|
|
033 |
|
} |
|
・・・ |
|
|
|
|
黄色の部分が追加・改変部分です。
書き写して実行して下さい。 |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
おっ、できたか。
おわっ!?
計算と文字列を連結してやがるし!
俺、数字の表示だけでいいと思ってた
んだけど・・・。
おまえ、意外とチャレンジャーだな。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
だって、お金の単位も
書かないとだめでしょ?
連結出来るかなーって思って
やってみたら、なんか
出来ちゃったみたいだから。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
おまけに
教科書のような
コメントも
打ててやがる。 |
 |
|
 |
えへへ
勝手にやって
ごめん。
テストだから
いいでしょ? |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
最初ね、「昼と夜の合計」出すところ
(100 * 5) + (200 * 3)って書いたら
500600円になってびっくりしたけど。。。
計算の外を括弧でくくって、
先に計算すれば大丈夫なんだね! |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
なぽちゃんの
言うとおり
括弧使ったよ!
いろいろ
面白いね! |
|
|
 |
自分で解決
できちゃったの・・・。
教えてないのに。 |
|
|
 |
実行結果(出力ウィンドウ) |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
おおお、上出来過ぎだ。
くそったれ。
この結果通り、文字列データと計算は連結
できるんだよ。
計算は、前後に文字列データがあると
計算後に自動的に文字列に変換されて
連結されるんだ。
前に500600円になっちゃったってのは、
全部の計算が終わる前に、
文字列の"500" + "600"になって連結された
からだよ。括弧が足りなかったんだな。
詳しくはもうちょっとあとでな。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
ケッ
すげえこった。
おいらはどうせ
落ちこぼれ。 |
 |
|
|
もう、なんで
そうなるのよー。
褒めてよー。
ひねくれものー。 |
|
|
|
 |
|
 |
|
練習問題1 間違いの例 |
|
・・・ |
|
|
|
029 |
|
//昼と夜の合計を表示 |
|
030 |
|
System.out.println("昼と夜の合計は"
+ (100 * 5) +
(200 * 3) + |
|
031 |
|
"円です。"); |
|
・・・ |
|
|
|
|
|
計算を完了させるために括弧が足りない。
そのため
(100 * 5) と
(200 * 3)
が別々に計算され
文字列の"500"
+
"600"になって連結された。 |
|
|
|
 |
|
 |
|
|
 |
実行結果(出力ウィンドウ) |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
でもな、お前の答えは正解だけど、
大きな問題があるんだ。
ほら、昼の合計と夜の合計を
すでに一回出してるのに、
全部の合計を出すために、
もう一回同じ計算をしてる。
これじゃ効率悪いよな。
同じ計算は一回にしないと。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
そだね。。。
うーん、
最初の合計を取って
おければいいのにね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
練習問題1 ことの解答コード(KotoTest2のKNMain.java)17行目~ |
|
・・・ |
|
|
|
017 |
|
public static void
main(String[] args) { |
|
018 |
|
// TODO code
application logic here |
|
019 |
|
|
|
020 |
|
//System.out.println((2048
* (1024 + 1024)) - 8658 + |
|
021 |
|
// 896 * 1024); |
|
022 |
|
|
|
023 |
|
//昼の合計を表示 |
|
024 |
|
System.out.println("昼の合計は"
+ 100 * 5 +
"円です。"); |
|
025 |
|
026 |
|
//夜の合計を表示 |
|
027 |
|
System.out.println("夜の合計は"
+ 200 * 3 +
"円です。"); |
|
028 |
|
|
|
029 |
|
//昼と夜の合計を表示 |
|
030 |
|
System.out.println("昼と夜の合計は"
+ ((100 * 5) + (200 * 3)) + |
|
031 |
|
"円です。"); |
|
032 |
|
|
|
033 |
|
} |
|
・・・ |
|
|
|
|
と は同じ計算
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
プログラムでは、こんな時
結果を保存しておける
変数(へんすう)が使えるんだ。
次に変数を見ていこう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
変化する数! |
|
|
|
|