簡略記法 |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
簡略記法とは、
コードを簡略化して書く記法だ。
省略記法ともいうよ。
同じコードを短縮して書けるんだよ。
英語で言えば
「I am」を「I'm」って書く感じかな。
こんなのがあるよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
まあ、
簡単に書けるヤツ
集めちゃった
だけだけど。
いいじゃん、
学者じゃねーんだし。
|
 |
|
 |
あばうとー |
|
|
|
 |
|
 |
|
簡略記法一覧 |
|
簡略記法 |
当セッション
での使用 |
内容 |
インクリメント・デクリメント演算子 |
|
変数への1づつの加減算を簡略化できる。演算子の前後の記載によって加減算のタイミングが変わる。
例:i = i + 1 → i++ |
複合代入演算子 |
|
変数自身に計算結果を代入する場合、簡略化できる。
例:a = a + 1 → a += 1 |
boolean型変数の簡略記法 |
|
制御文の条件式にboolean型変数の判定を書く場合、簡略化できる。
例:
[trueの場合]
if(loopFlg == true) → if(loopFlg)
[falseの場合]
if(loopFlg == false) → if(!loopFlg) |
制御文の実行内容が
1ステートメントの場合の
括弧の省略 |
非推奨 |
if、for、whileの制御文で実行内容が1ステートメント(1命令)しかない場合、ブロックの括弧を省略できる。
例:if(a < 10) System.out.println("a"); |
3項演算子(条件演算子) |
非推奨 |
if文を簡略化して書くことができる。
書式:
条件式? true時の値 : false時の値;
例:
b = a < 10 ? 111 : 999; |
|
|
この表はコードの書き方を短縮するものを集めたものです。
簡略記法の分類としては正確ではない可能性があります。 |
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
あっ、
インクリメント演算子って
for文で見たのだよね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そうそう。
演算子一覧にも載ってただろ。
じゃあ、
インクリメント演算子から
見ていこう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
はいはい |
 |
|
 |
インクリメント演算子は
正確には「簡略記法」
じゃないかも。
簡略にしてるんだから、
別にいいじゃん。 |
|
|
|
 |
|
 |
|
演算子一覧(抜粋) |
|
演算子 |
種類 |
書式 |
内容 |
++ |
インクリメント |
++A
A++ |
数値型Aに1を加算する。++Aの場合、代入前に加算。A++の場合、代入後に加算。
例1:a = ++b; 例2:for(int i = 0;i < 10;i++) |
-- |
デクリメント |
--A
A-- |
数値型Aに1を減算する。--Aの場合、代入前に減算。A--の場合、代入後に減算。
例1:a = --b; |
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
インクリメント演算子を使うと
簡単に変数の値に
1 加算できるんだよ。
使う記号は
「++」(プラスを2つ)。
変数の前または後ろに
「++」記号を付けて使うんだ。
変数++ または ++変数
これで、変数 = 変数 + 1
と同じ意味になる。
|
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
使う対象は
数値型の変数ね。
インクリメントは
日本語の「増加」
の意味だよ。 |
|
計算式を
書くのが
ちょっと
楽になるね。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
デクリメント演算子は
逆に変数の値を 1 減算
するんだね。
使う記号は
「--」(マイナス2つ)で、
使い方は
インクリメント演算子と同じ
なんだ。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
インクリメント演算子の書式 |
|
a++; |
前、または後ろに「++」(プラスプラス)を付ける |
|
|
|
数値型変数への1加算を簡略化して記述できる |
|
通常 |
インクリメント演算子 |
書式 |
変数 = 変数 + 1 |
変数++ または ++変数 |
例 |
a = a + 1; |
a++; |
|
|
|
|
 |
|
 |
|
|
 |
|
 |
|
デクリメント演算子の書式 |
|
a--; |
前、または後ろに「--」(マイナスマイナス)を付ける |
|
|
|
数値型変数への1減算を簡略化して記述できる |
|
通常 |
デクリメント演算子 |
書式 |
変数 = 変数 - 1 |
変数-- または --変数 |
例 |
a = a - 1; |
a--; |
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
インクリメント演算子と
デクリメント演算子の違いは
「1足す」か、「1引く」かだけ。
あとは同じだから、以降は
インクリメント演算子で説明
していくよ。
デクリメント演算子は「加算」を
「減算」に読み替えてくれ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
よろぴこ
|
 |
|
|
|
 |
|
 |
|
インクリメント演算子の加算の例 |
|
・・・ |
|
|
|
|
|
int
num = 0;//number |
|
|
|
|
|
|
|
System.out.println("numの初期値:"
+ num); |
|
|
|
|
|
|
|
num++;//1回目の加算 |
|
|
|
System.out.println("1回目の加算:"
+ num); |
|
|
|
|
|
|
|
num++;//2回目の加算 |
|
|
|
System.out.println("2回目の加算:"
+ num); |
|
|
|
|
|
|
|
num++;//3回目の加算 |
|
|
|
System.out.println("3回目の加算:"
+ num); |
|
・・・ |
|
|
|
|
=(イコール)で変数に代入しないでも1加算される |
|
|
 |
|
 |
|
|
 |
実行結果(出力ウィンドウ) |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
実際に加算した場合は
こんな感じ。
これらの演算子は
for文以外でも使えるよ。
普通の計算と同じようにね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
ちゃんと
1加算
できてるね。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
イコールを使わないで
変数に加算できる
なんて面白いね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
図を見てね。
|
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
気をつけなきゃいけないのは、
インクリメント演算子付きの変数を
別の変数へ代入する時だ。
インクリメント演算子が
変数の前に付いている(前置)か
変数の後に付いている(後置)かで、
加算と代入の順番が変わる
んだ。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
++変数だと
先に加算してから代入。
変数++だと
代入してから後で加算。
結果が違うんだー! |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
変なのー。 |
|
|
|
 |
|
 |
|
インクリメント演算子 前置にした場合 |
|
|
実行例 |
・・・ |
|
|
|
|
|
int
num = 0;//number |
|
|
|
int ans = 0;//answer |
|
|
|
|
|
|
|
ans =
++num;//前置>
インクリメントしてから代入する |
|
|
|
|
|
|
|
System.out.println("number:"
+ num); |
|
|
|
System.out.println("answer:"
+ ans); |
|
・・・ |
|
|
|
|
 |
実行結果(出力ウィンドウ) |
|
|
変数
ans の値は
1 になる。
前置の場合、先に自分に加算。その値を変数に代入する。
以下の計算処理と同じ |
|
|
|
num |
ans |
1、自分に加算する |
num = num + 1; |
1 |
0 |
2、代入する |
ans = num; |
1 |
1 |
|
加算後の値が代入される。 |
|
|
|
 |
|
 |
|
|
 |
|
 |
|
インクリメント演算子 後置にした場合 |
|
|
実行例 |
・・・ |
|
|
|
|
|
int
num = 0;//number |
|
|
|
int ans = 0;//answer |
|
|
|
|
|
|
|
ans =
num++;//後置>
代入してからインクリメントする |
|
|
|
|
|
|
|
System.out.println("number:"
+ num); |
|
|
|
System.out.println("answer:"
+ ans); |
|
・・・ |
|
|
|
|
 |
実行結果(出力ウィンドウ) |
|
|
変数
ans の値は
0 になる。
後置の場合、先に値を代入。その後に自分に加算する。
以下の計算処理と同じ |
|
|
|
num |
ans |
1、代入する |
ans = num; |
0 |
0 |
2、自分に加算する |
num = num + 1; |
1 |
0 |
|
加算前の値が代入される。 |
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
for文では当面は
変数++(後置)
だけ使うように言ったよな。
実は、前置と後置で
カウンターの加算のタイミングが
変わるからなんだ。
後置だと
ループが終わった後に
カウンターが増加するんだよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
カウンターの増加の
タイミングは
インクリメント演算子で
決まってたの。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
後置の例ね。 |
 |
|
 |
これは
いつものだね。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
だから、逆に
前置で使えば、ループ前に
カウントを増加させること
もできる。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
前置ね。 |
 |
|
 |
いろいろ
あるんだねー。 |
|
|
|
|
|
 |
|
 |
|
for文のカウンターの増減タイミング まとめ |
|
カウンターを増加させるタイミングを、
ループ開始前、ループ終了後か変更できる。
カウンター変数へ演算子を書く位置によって増減タイミングが変わる。 |
|
|
書式 |
加算タイミング |
++変数 |
ループ開始前に加算 |
変数++ |
ループ終了後に加算 |
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
でも、for文で使うのは
当面は後置だけにしてね。
ほとんどの処理は
それで間に合うし
やり方も統一できて
理解しやすいと思うよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
やりたかったら
俺のセッションが
終わったら
勝手にやりな。
ケッ |
|
|
 |
何で、そんな
言い方するのよー。
もおー、
ひねくれものっ! |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
俺はインクリメント演算子
はfor専用って感じかなあ。
1づつしか加算できないし。
計算を簡単に書く方法は、
次の「複合代入演算子」かな。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そうなんだ。
じゃあ、
次の簡略記法を
見ていこー。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
はいはい
元気ね、あなた。
ほんとに。
|
 |
|
 |
あと
ちょっとでしょー。
お願いー。 |
|
|
|
 |
|
 |
|
簡略記法一覧 |
|
簡略記法 |
当セッション
での使用 |
内容 |
インクリメント・デクリメント演算子 |
|
変数への1づつの加減算を簡略化できる。演算子の前後の記載によって加減算のタイミングが変わる。
例:i = i + 1 → i++ |
複合代入演算子 |
|
変数自身に計算結果を代入する場合、簡略化できる。
例:a = a + 1 → a += 1 |
boolean型変数の簡略記法 |
|
制御文の条件式にboolean型変数の判定を書く場合、簡略化できる。
例:
[trueの場合]
if(loopFlg == true) → if(loopFlg)
[falseの場合]
if(loopFlg == false) → if(!loopFlg) |
制御文の実行内容が
1ステートメントの場合の
括弧の省略 |
非推奨 |
if、for、whileの制御文で実行内容が1ステートメント(1命令)しかない場合、ブロックの括弧を省略できる。
例:if(a < 10) System.out.println("a"); |
3項演算子(条件演算子) |
非推奨 |
if文を簡略化して書くことができる。
書式:
条件式 ? true時の値 : false時の値;
例:
b = a < 10 ? 111 : 999; |
|
|
この表はコードの書き方を短縮するものを集めたものです。
簡略記法の分類としては正確ではない可能性があります。 |
|
|
|
 |
|
 |
|
|