変数を宣言する
計算した値を、置いておく場所がない
980 + 500 の答えを出したあと、それを次の計算にも使いたい。画面にも出したい。そのたびに 980 + 500 と書き直していたら、金額が変わったときに全部直すことになります。計算した結果に名前を付けて取っておく仕組みが 変数 です。
Java の変数宣言は、この 1 行の形しかありません。
Java
int subtotal = 980;int が型、subtotal が名前、= が代入、980 が値、最後の ; が文の終わりです。Python や JavaScript のように、いきなり subtotal = 980; と書き始めることはできません。箱の種類を先に宣言するのが Java の決まりです。ここでは整数を入れる int を使います。
いったん名前が付けば、あとは名前で呼べます。
Java
int subtotal = 980;
int shipping = 500;
int total = subtotal + shipping; // 14803 行目は「右側を計算してから、その答えを total という新しい箱に入れる」という順番で動きます。式の結果をそのまま次の行に渡せるので、長い計算を段階に分けて書けるようになります。
= は「等しい」ではない
数学の = と同じ記号ですが、意味が違います。Java の = は「右にあるものを、左の箱に入れる」という操作です。だから同じ箱を左右に置けます。
Java
int stock = 12;
stock = stock - 1; // 11 になる2 行目を「stock と stock - 1 が等しい」と読むと矛盾しますが、「stock - 1 を計算して、その答えを stock に入れ直す」と読めば素直です。宣言は最初の 1 回だけで、2 行目に int は付けません。
型を書き忘れて
stock = 12;から始めるとcannot find symbolになります。「そんな名前の箱は用意されていない」という意味です。
1stScore という名前は付けられない
変数名は自由ですが、いくつか守る決まりがあります。数字から始められないこと、スペースやハイフンを含められないこと、int や return のような予約語は使えないことの 3 つです。大文字と小文字も区別されるので、total と Total は別の箱になります。
慣習として、2 語以上つなぐときは totalPrice userAge のように 2 語目の先頭を大文字にします。そして名前は必ず中身が分かるものにしてください。a や tmp は書いている 10 分間だけ楽で、読み返す何か月かをずっと重くします。
やってみよう
addOne(int n) を完成させてください。条件が 1 つあります。return n + 1; と直接返さず、いったん変数を通すことです。
- メソッドの中で
intの変数を 1 つ宣言し、n + 1の結果を入れる - 次の行で、その変数を
returnで返す
1 行で書いても答えは同じですが、いったん変数に入れておくと途中の値を確かめたり、あとから別の計算を足したりできます。変数名は result でも answer でも構いません。2 行目の名前と揃えることだけ気をつけてください。
要件
- クラス名は
Solution、メソッド名はaddOne、引数はint n1 つにすること - メソッドの中で
int result = n + 1;のように、新しい変数resultを宣言してn + 1の結果を代入すること - 最後に
return result;でresultの中身を返すこと (return n + 1;のように直接返さない)
入出力例
addOne(5) → 6
addOne(-3) → -2
addOne(0) → 1
addOne(100) → 101