広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

SESSION 9 その39
簡略記法

簡略記法とは、
コードを簡略化して書く記法だ。
省略記法ともいうよ。


同じコードを短縮して書けるんだよ。

英語で言えば
「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文のカウンターの増減タイミング まとめ
 
カウンターを増加させるタイミングを、
ループ開始前、ループ終了後か変更できる。

カウンター変数へ演算子を書く位置によって増減タイミングが変わる。
書式 加算タイミング
++変数 ループ開始前に加算
変数++ ループ終了後に加算
 
 

でも、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;

この表はコードの書き方を短縮するものを集めたものです。
簡略記法の分類としては正確ではない可能性があります。

 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告