私のホームページへ - 前の授業へ - 次の授業へ

情報処理IIIA(Javaプログラミング入門)第3回

目次
  1. 式と演算子
  2. 変数と代入文
  3. 演習3
  4. レポート課題

式と演算子

前々回の授業では、スタンドアロン・アプリケーションの例として、端末エミュレータにGoodMorning!と出力するプログラムを動かしてみました。 また、前回は、アプレットの例として、絵を描くプログラムを作成しました。 今回は、再びスタンドアロン・アプリケーションに戻りまして、数(特に整数)を取り扱うことにします。

次のプログラムを動かしますと、端末エミュレータで以下のような出力が得られます。

ExpressionTest.java
 1: class ExpressionTest {
 2:    public static void main (String[] args) {
 3:       System.out.println(250 + 100);
 4:       System.out.println(250 - 100);
 5:       System.out.println(250 * 100);
 6:       System.out.println(250 / 100);
 7:       System.out.println(250 % 100);
 8:       System.out.println(1000 + 250 * 3);
 9:    }
10: }
b00a001@Ampere:~/java% javac ExpressionTest.java
b00a001@Ampere:~/java% java ExpressionTest
350
150
25000
2
50
1750
b00a001@Ampere:~/java%

プログラム中の 250 + 100, 250 - 100 などはexpression)とよばれるものです。 プログラムを動かしますと、式が計算されているのが分かります。 ここで、記号 * が掛け算を表していることに注意してください。 また、記号 / は割り算を表していますが、この場合は2余り50という計算をして、2を計算結果としています。 余りを求めるには、/ の代わりに % を書きます。

+, -, *, /, % などを演算子operator)とよびます。

表3.1 整数(int 型)の演算子
記号演算
+足し算19 + 3 ⇒ 22
-引き算19 - 3 ⇒ 16
*掛け算19 * 3 ⇒ 57
/割り算19 / 3 ⇒ 6
%割った余り19 % 3 ⇒ 1

上記の最後の出力を見ますと、式 1000 + 250 * 3 の計算は、はじめに掛け算をして、次に足し算をしていることが分かります。 これは、演算子 + より * のほうが優先順位が高いと決められていて、式は優先順位の高い演算子から順に計算されるからです。 もし、足し算を先に計算したければ、括弧を使って (1000 + 250) * 3 と書いてください。 この式の計算結果は 3750 となります。

演算子の優先順位を簡単に説明しますと、まず括弧の中が最優先で計算されます。 次に演算子 *, /, および % が優先します。 最も優先順位が低いのは、演算子 +- です。 ここで注意すべきことは、+- は同じ優先順位であり、これらが続いているときは左から右に計算されることです。 例えば、式 5 - 3 + 1(5 - 3) + 1 と見なされ、3 という計算結果になります。 演算子 *, /, % についても同様です。


変数と代入文

プログラミングでは、変数variable)というものが重要な役割を果たします。 変数とは数などのデータが格納できる「入れ物」であると考えてください。 次の図は変数のイメージです。

An image of a variable
図3.1 変数のイメージ

変数には名前がついています。 これを変数名variable name)とよびます。 この場合は x です。 また、変数にはデータがひとつ格納できます。 これを変数のvalue)とよびます。 この場合、変数 x の値は100です。

変数を使えるようにするには、変数の宣言declaration)という手続きが必要です。 変数にデータを格納するには、代入文assignment statement)というものを用います。 変数に格納されたデータを取り出すには、式の中で数の代わりに変数名を書きます。

以下は変数を使ったプログラムの例です。

 1: class VariableTest {
 2:    public static void main (String[] args) {
 3:       int x;
 4:       x = 100;
 5:       System.out.println(x);
 6:    }
 7: }
b00a001@Ampere:~/java% javac VariableTest.java
b00a001@Ampere:~/java% java VariableTest
100
b00a001@Ampere:~/java%

3行目では、変数の宣言を行って、変数を使えるようにしています。 変数名を x とし、ここに格納するデータの種類(型といいます)は整数(int 型)だと言っています。

変数名はプログラマが決めます。 アルファベットの大文字か小文字で始まり、アルファベットの大文字、小文字、数字、アンダースコア(_)を並べた単語が使えます。 ただし、次の単語はJavaで特別な意味を持ちますので、変数名としては使えません。

Javaのキーワード
abstract, boolean, break, byte, byvalue, case, cast, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, future, generic, goto, if, implements, import, inner, instanceof, int, interface, long, native, new, operator, outer, package, private, protected, public, rest, return, short, static, super, switch, synchronized, this, throw, throws, transient, try, var, void, volatile, while

また、null, true, false も変数名としては使えません。

4行目は代入文です。 変数 x にデータ 100 を格納します。 代入文は、一般に

variable = expression;

という形をとります。 式 expression の計算結果を変数 variable に格納するということです。 単なる数も式の一種だということに注意してください。

5行目は結果の出力です。 変数 x にはデータ100が格納されていますので、あたかも System.out.println(100); と書いたように振舞います。

次のプログラムはいくつかの変数を使う例です。

 1: class SomeVariables {
 2:    public static void main (String[] args) {
 3:       int temp1, temp2, temp3;
 4:       temp1 = 300;
 5:       temp2 = 200;
 6:       temp3 = 4 * temp1 + 3 * temp2;
 7:       System.out.println(temp3);
 8:       System.out.println(4 * 300 + 3 * 200);
 9:    }
10: }
b00a001@Ampere:~/java% javac SomeVariables.java
b00a001@Ampere:~/java% java SomeVariables
1800
1800
b00a001@Ampere:~/java%

3行目で、3つの変数 temp1, temp2, temp3 を宣言します。 これは、変数の宣言

int temp1;
int temp2;
int temp3;

をまとめたものです。 6行目で、変数 temp3 に式 4 * temp1 + 3 * temp2 の値を代入します。 変数 temp1 の値は300で、temp2 の値は200ですので、4×300+3×200を計算して、この値1800が変数 temp3 に格納されます。


演習3

以下の買い物の合計金額を計算するプログラムを作成してください。 ただし、単価をいったん変数(例えば postcard, stamp, envelope)に格納し、この変数名を使って式を書いてください。 また、合計金額もいったん変数(例えば total)に格納し、この変数名を使って端末エミュレータへの出力を指定してください。 (消費税は考えないでください。)

表3.2 買い物の例
品名単価数量
官製葉書5060
切手8060
封筒(8枚入り)1008

レポート課題

今日の演習3にしたがってJavaプログラムを作成し、konishi@twcu.ac.jpあてにメールでそのプログラムを提出してください。 メールには、学生番号、氏名、科目名、授業の日付けを明記してください。


私のホームページへ - 前の授業へ - 次の授業へ

このページの複製は、東京女子大学学内に限り許可します。 このページへのリンクを許可します。
2000年11月22日更新
製作・著作:小西善二郎<konishi@twcu.ac.jp>