1.変数と演算
次のプログラム(ソースコード)をノートに書いてみよう(テキスト P21)
プログラムの名前は、「Example111」。Javaでは、プログラム名のことをクラス名と呼ぶ。クラス名には英数字、「_(アンダスコア)」「$」が使える。クラス名の先頭文字は、慣例でアルファベット大文字にする。
プログラム(クラス)は、複数のメソッドで構成される。mainメソッドは、最初に実行されるメソッド。
Eclipseから、このプログラムを入力し保存すると、「Example111.java」というソースファイルが作成される。
入力したプログラムに文法上の誤りがなければ、コンパイルは成功する。コンパイルに成功すると、「Example111.class」というクラスファイルが作成される。
「Example111.class」を実行すると、上記のような実行結果が得られる。
「System.out.println()」は、Javaが用意している、「標準出力」のためのメソッド。このメソッドを実行すると画面に引数で指定した値が出力される。
※メソッドを表記する場合、「メソッド名()」と書く。
標準出力(standard output)と標準入力(standard input)
標準出力とは、コンピュータ上で実行されているプログラムが、特に何も指定されていない場合に標準的に利用するデータ出力先。stdoutと略される。パソコンでは、画面が標準出力となっている。
標準入力とは、コンピュータ上で実行されているプログラムが、特に何も指定されていない場合に標準的に利用するデータ入力先。stdinと略される。パソコンでは、キーボードが標準入力となっている。
「System.out.println()」は、1行出力後、改行する。1行出力後、改行しないメソッドに「System.out.print()」がある。
一行の最後に「;(セミコロン)」を入れる
文字列は、「”(ダブルクォーテーション)」と「”」の間に記述する。文字は「‘(シングルクォーテーション)」と「’」の間に記述する。→備考1
プログラムは半角で入力する。全角が許されるのは文字列や文字を指定する場合とコメントのみ。誤って全角で入力するとコンパイルエラーになる。
Javaのソースコードでは、大文字と小文字は区別される。
備考1 文字と文字列
Java では文字と文字列は明確に区別される。文字は単一の文字のこと、例えば「あ」や「x」などが文字になる。一方で、文字列は1文字以上の複数の連続する文字を表す。例えば「あるす」や「ARS」など複数の文字が連続するものが文字列になる。
‘あ’ ‘x’ ・・・文字
“あるす” “ARS” ・・・文字列
プログラムの書き方
Javaでは、見やすいソースコードにするために改行を入れ、各行の最初の単語や記号は字下げ(インデント)している
実際には、改行を入れなくとも正しく実行できる。
インデント(字下げ)
各行の先頭に入っている空白を字下げ(インデント)とよぶ。インデントは、プログラムを読みやすくするために入れる。
インデントの桁数は自由であるが、一般にJavaでは4桁の半角空白を使っている。
インデントの入れ方には2通りある
- Tabキーを1回押す
- 空白キーを、インデントの桁数分押す
Tabキーを利用すると、1回で押すだけで入力でき、インデントを削除する場合にもDelキーを1回押すだけでできる。ただし、Tabキーで何桁移動するかは、テキストエディタで設定しているので、Javaのソースコードを別のテキストエディタで表示したら、インデントの桁数が違う、ということが起こる。
Tabキー、改行キーやスペースキーは入力しても表示しないし印刷もされない。このような文字をホワイトスペースとよぶ。テキストエディタには、ホワイトスペースを表示する機能を持っている場合が多い。
よくあるミスに、全角空白を入力してしまう場合がある。Javaでは、全角文字は決められた場所以外では入力してはいけない。入力するとコンパイルエラーになるが、ソースコードを印刷しても全角文字は表示されないので、紙の上ではエラー原因がわからない。Eclipseでは、上図のように全角スペースが入力されていることを確認できる。
ブロックの書き方
{と}で囲まれた部分をブロックという。ブロックは、クラスの範囲、メソッドの範囲、if文やwhile文の処理範囲をあらわす。開始の{と、対応する終了の}の場所がわかるようにソースコードを書く。2通りの書き方がある。
書き方1
書き方2
コメント
コメントとはプログラムソースに記述されているが、実行対象にはならない箇所のこと。
使い方は大きく分けて2通りある。
- プログラムに関してのメモ書きを置いておく
- バグを取るなどのために、一部分をプログラムとして動かなくする
前者は、他の人や将来の自分が見てわかりやすくするために、プログラムの内容やなぜそのように書いたのかを書いておくために使う。
後者は、バグを取るなどのためなどによく使う。コメント化して処理させないようにすることを「コメントアウト」と言う。
コメントの書き方には2通りある。
- 1行コメント
- 複数行コメント
1行コメント
1行だけのコメントは次のように書く
// (コメント内容)
複数行コメント
/* と */で囲まれた部分がコメントになる。
/* (コメント内容) */
確認問題
- Javaでは、プログラム名のことを( a )と呼ぶ。
- クラス名には英数字、「( a )」「( b )」が使える。
- クラス名の先頭文字は、慣例で( a )にする。
- 「標準出力」(1行出力後、改行する)のためにメソッドの名前は( a )である。
- 「標準出力」(1行出力後、改行しない)のためにメソッドの名前は( a )である。
- 文字列は、「( a )」と「( a )」の間に記述する。文字は「( b )」と「( b )」の間に記述する。
- Javaのソースコードでは、大文字と小文字は区別されるか。( a )
- 標準出力は、( a )と略される。パソコンでは、( b )が標準出力となっている。
- 標準入力は、( a )と略される。パソコンでは、( b )が標準入力となっている。
- 各行の先頭に入っている空白を( a )とよぶ。
- Tabキー、改行キーやスペースキーは入力しても表示しない、このような文字を( a )とよぶ。
- {と}で囲まれた部分を( a )という。
データ型
データ型には、基本データ型と参照型がある。
文字列を格納するStringは、参照型に分類される。
変数の宣言
変数を使用するには、まず最初に使用する変数を宣言しなくてはいけない。変数の宣言は次のように行う。
データ型名 変数名;
3行目で変数monthをint型(整数型)で宣言している。4行目で変数nameをString型(文字列型)で宣言している。
代入
変数に値を入れることを代入とよぶ・
変数=値;
5行目で変数monthに、数値1、6行目で変数nameに、文字列”January”を代入している。
文字列の結合
文字列連結演算子「+」により、文字列を結合することができる。
式のひとつのオペランドが文字列であるなら、他のオペランドが文字列でなくても、文字列連結が行われる。文字列でない値が数値であれば、連結した文字列を作り出すために数値は文字列に変換され、連結される。
例
“ABC” + “DEF” → “ABCDEF”
”ABC” + 1 → “ABC1”
次の式は注意が必要
1 + 2 + “ABC” → 3+“ABC” → “3ABC”
問題
次の命令の実行結果を答えなさい
System.ut.println(“ABC”+1+2);
演算子
変数の初期化
変数はまず宣言を行い、その後に変数に値を代入する。
データ型名 変数;
変数 = 値;
もし変数を宣言する時点で代入する値が決まっている場合には次の書式を使うことができる。
型名 変数 = 式;
このように変数を宣言すると同時に値を代入することを変数の初期化と言う。
3行目では、int型変数dataを宣言し、数値2000で初期化している。4行目では、double型変数priceを宣言し、算術式「data*1.1」の値で初期化している。
複合代入演算子
Javaでは、「n = n + 2」を「n += 2」と書くことができる。「+=」のように算術演算子と代入演算子を組み合わせた演算子を複合代入演算子とよぶ。
インクリメント演算子、デクリメント演算子
Javaでは、「i = i + 1」を「++i」または「i++」,「i = i – 1」を「- -i」または「i- -」と書くことができる。変数の値を1加算する演算子をインクリメント演算子、変数の値を1減算する演算子をデクリメント演算子という。
インクリメント演算子、デクリメント演算子を、標準出力などの他の処理と一緒に使用すると、変数名の後に記述した場合と前に記述した場合で演算結果が異なる場合がある。
int a=1;
System.out.println(a++); /* aの値を出力してから、aに1を加える */
実行結果 1
int a=1;
System.out.println(++a); /* aに1を加えてから、aの値を出力する */
実行結果 2
確認問題
- データ型には、( a )と( b )がある。
- 文字列を格納する( a )は、参照型に分類される。
- 変数を宣言すると同時に値を代入することを( a )と言う。
- 「+=」のように算術演算子と代入演算子を組み合わせた演算子を( a )とよぶ。
- 変数の値を1加算する演算子を( a )、変数の値を1減算する演算子を( b )という。
7.変数totalに、数値1000を足しこむ式を複合代入演算子を使って書きなさい。
8.次の命令の実行結果を書きなさい。
int a=1;
System.out.println(a++);
System.out.println(a);