06 プログラム内で計算して、その結果を表示させよう!

【第6回】プログラム内で計算して、その結果を表示させよう!

前回の講座はどうでしたか?
初めての言葉が色々出てきましたが理解できたでしょうか?

これからは、前回までにやったことがどんどん出てくるので、
「忘れてしまった」「わからなくなってしまった」時には、
また前の回を読み直してみてください。
そうすると、初めて読んだときよりグッと理解できたりしますから。

前提:前回までの内容を一通り読み、変数、型などの言葉が大体理解できること

では今回は始めに問題を出しましょう。

問題:「6と3の足し算、引き算、掛け算、割り算の結果を表示しなさい」

さあどうでしょう?
まずは自分の頭で考え、プログラムをいじって色々試行錯誤してみてください。
あ、その前に
プログラムで加減剰余はどんな記号を使うか知らないといけませんね。
下にその記号を書いておきます。

加算 +
減算
乗算 *
除算 /

さあ、やってみましたか?
出来た人も出来なかった人もいるでしょうが、やってみた、ということが大事!

(1)解答例1

まずは単純な解答例。

ファイル名:Calculate.java

public class Calculate
{
    public static void main(String[] args) 
    {
        System.out.println(6 + 3);
        System.out.println(6 - 3);
        System.out.println(6 * 3);
        System.out.println(6 / 3);
    }
} 

コンパイル、実行の結果は以下のようになります。

C:\work>javac Calculate.java
C:\work>java Calculate
9
3
18
2
C:\work>

どうです、単純でしょう?

はじめに「これでできるんじゃないか」と思って出来た人は鋭いですね。
「前回、変数や型をやったからそれを使うはずだ」と思ってしまうと
気づかなかったりしますね(笑)

それにprintlnでどのように書けばどのように表示できるか、ということを教えていないのに、
「これでできるんじゃないか」と推測できたところが凄いですね。
「これはあそこでああやって出来たから、こうでもできるんじゃないか?」
という推理能力、
時には的外れになることもあるかもしれませんが、大事な能力です。

そう、単純にprintlnのカッコの中で書くだけで出来てしまうのです。
ただ、ここで間違えてはいけないのですが、
実はこの書き方、一文の中で複数のことを行っているのです。

どういうことかというと、

System.out.println(6 + 3);

という一文がありますよね。
これはコンピュータ内では次のように処理されます。

[1]変数を宣言する
[2] 6 + 3の計算した値を変数に代入する
[3]printlnに変数を渡してその値を表示させる

これらのことをあの一文で同時に行っているのです。

あれ?
この流れってどこかで見ませんでしたか?

そう、これは前回の講座でやった
「変数の値をprintlnで表示させる」というのと同じですよね!

ということは、明示的に変数を宣言してもできるってことですよね。
というわけで次の解答例にいきましょう。

(2)解答例2

ファイル名:Calculate.java

public class Calculate
{
    public static void main(String[] args)
    {
        int addResult;  // 加算結果変数
        int subResult;  // 減算結果変数 
        int multResult; // 乗算結果変数
        int divResult;  // 除算結果変数 

        addResult = 6 + 3;
        subResult = 6 - 3;
        multResult = 6 * 3;
        divResult = 6 / 3; 

        System.out.println(addResult);
        System.out.println(subResult);
        System.out.println(multResult);
        System.out.println(divResult);
    }
} 

実行結果は(1)と同じなので省きますね。

前回までの知識で解くと、こちらのやり方になります。
この方法で出来た人は前回までの知識を
理解し応用している、という点で素晴らしいですね。

さてさて、ここでも新しいことが出てきている事にお気づきですか?
前回はString型の変数をprintlnに渡してその値を表示させましたね。
今回はint型です。
それでもprintlnは同じように使えるんだ、ということです。

そうすると次のことがわかります。
printlnに変数を渡すと、その変数の型が何であろうとその変数の値を表示する
ということです。

よって、こちらの方法で解けた人も推理能力があるということですよ。
「String型で出来たという事はint型でもできるんじゃないか?」
と思って、出来たわけですから。
素晴らしい!!

他の部分は説明不要ですよね。
前回の講義でやったことですから。

さて、今まで黙っていましたが重要なことを一つ。
今回のプログラムのファイル名、「HelloWorld.java」のままやっている人、いませんでした?
ほら、そこのあなた!やっていたでしょう?(笑)

はじめの内はやってしまいがちなんですが、それは厳禁!ですよ。
プログラムには、そのプログラムが何のプログラムかわかる名前をつける事!

そうしないと、これから色々プログラムを作っていく内に
「あれ?あのプログラムの処理、どこかでやったけど、どのプログラムだったっけ?」
というのが自分でもわからなくなりますから。

それと同じように変数名もきちんと名前をつけましょう。
プログラミング入門の本でも時々
「変数名i」なんて書いてあるものがありますが、
そんなことをしてはいけません!

これも上と同じ理由で、
「あれ?この変数ってなんの変数だっけ?」と
わからなくなってしまいますから。
他の人がそのプログラムを読むときにも、
ただ“i”だけでは、わからないですよね。

さてさて、では今回やったことをおさらいしてみましょう。

~まとめ~
1.数値の計算をプログラム内で行うことが出来た
2.printlnの使い方の理解が深まった
3.プログラム名、変数名をきちんとつけることが大事であることがわかった

今回は上記の事をやりました。
片方のやり方で出来た人も、どちらも思いつかなかった人も、
今回の解答例をよく読んで理解しておいてくださいね。
今は「出来た」「出来ない」より
「あーだ、こーだと悩んだ」という過程が大事ですから。
それがそのうち血となり肉となっていきます。
絶対にね。

それでは、今回はここまで!

→ 次へ(第7回:前回のプログラムをもっときれい に表示しよう)