0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JAVA 基本文法[2] - 計算の文

Posted at
計算の文

計算の文とは、変数や値を用いた様々な計算処理をコンピュータに行わせるための文。
「四則演算」や「変数に値を代入」するのが計算である。

Main.java
//例
public class Main {
  public static void main(String[] args) {
    int a; //ここは変数宣言の文
    int b; //ここは変数宣言の文
    a = 20; //「計算の文」(代入)
    b = a + 5; //「計算の文」(足し算して代入)
    System.out.println(a);
    System.out.println(b);
  }
}
/*実行結果
20
25
*/

「b = a + 5」のようなものを「式」という。

式の構成要素

まず、式はどのような要素があるのか確認してみよう。
例えば「b = a + 5」を分解すると→変数の「a」「b」や値の「5」、計算記号の「=」「+」に分けることができる。

変数(例.a,b)と値(例.5)を「オペランド」
計算記号(例.=,+)を「演算子」
どんな「式」にも「オペランド」と「演算子」の2つの要素のみで構成されている。

オペランド

●リテラル
オペランドの中でも数値「4」や文字列「Hello World」などソースコードで表現される具体的な値を「リテラル」という。そして「それぞれのリテラルはデータ型を持っている」

リテラルの種類   表記例  
小数点がない数字 30 int
小数点がない数字で末尾がL又はl 300000L long
小数点付きの数字 30.5 double
小数点付きの数字で末尾がF又はf 30.5F float
true又はfalse true boolean
引用符で囲まれた文字 '雅' char
二重引用符で囲まれた文字 "Java" String

※「1」(int型)、「'1'」(char型)、「"1"」(String型)は、どれも別物。

●リテラル以外のオペランド
「変数」、「定数」、「命令の実行結果」

エスケープシーケンス

String型やchar型のリテラルを記述する際に、時々用いられるのが「エスケープシーケンス」と呼ばれる特殊文字。
「¥」記号とそれに続く1文字の合計2文字による記述方法で、その2文字で特殊な1文字を表現する。

表記 格納するデータ
¥" 二重引用符記号(")
¥' 引用符記号(’)
¥¥ 円記号(¥)
¥n 改行(制御文字)
どのような順番で式が計算されていくか

javaが式に従って計算処理をすることを、式の「評価」と呼ぶ。
3つの原則に従いながら、式の一部から少しずつ部分的に処理していき、最後に式全体の計算処理が完了する。
①評価結果への置換の原則
演算子は周囲のオペランドの情報を使って計算を行い、それらオペランドを巻き込んで結果に化ける(置き換わる)。段階的に評価される。
②優先順位の原則
()内の式は、評価順位を上げれる。
式に演算子が複数ある場合、JAVAで定められた優先順位の高い演算子から順に評価される。
※詳細は演算子にて…
③結合規則の原則
式の中に同じ優先順位グループに属する演算子が複数ある場合、「演算子ごとに決められた方向(⇄)から順に」評価される。
例)=演算子は右のものから評価される。 a=b=10の場合、b=10が先に評価され、次にa=10が評価されaに10が代入される。
※詳細は演算子にて…

演算子

主に4分類(算術演算子、文字列結合演算子、代入演算子、インクリメント/デクリメント演算子)に分けられる。

●算術演算子

演算子 機能   優先順位   評価の方向 評価の例
+ 加算(足し算) 中(5) 左→右 3+5→8
- 減算(引き算) 中(5) 左→右 10-3→7
* 乗算(掛け算) 高(4) 左→右 3*2→6
/ 除算(割り算)※整数演算では商 高(4) 左→右 3.2/2→1.6、 9/2→4
% 剰余(割り算の余り) 高(4) 左→右 9%2→1

●文字列結合演算子

演算子 機能   優先順位   評価の方向 評価の例
+ 文字列の連結 中(5) 左→右 "こん"+"にちは"→"こんにちは"、"ベスト"+3→ベスト3

●代入演算子
右オペランドの内容を左オペランドの変数に代入する演算子。
代入は基本的に最後に行うものと覚えておこう。

演算子 機能   優先順位   評価の方向 評価の例
= 右辺を左辺に代入 最低(15) 右→左 a=10→a
(中身は10)
+= 左辺と右辺を加算して
左辺に代入
最低(15) 右→左 a+=2→a
(a=a+2と同じ)
-= 左辺から右辺を減算し
左辺に代入
最低(15) 右→左 a-=2→a
(a=a-2と同じ)
*= 左辺と右辺を乗算し
左辺に代入
最低(15) 右→左 a*=2→a
(a=a*2と同じ)
/= 左辺と右辺を除算し
左辺に代入
最低(15) 右→左 a/=2→a
(a=a/2と同じ)
%= 左辺と右辺を除算し
その余りを左辺に代入
最低(15) 右→左 a%=2→a
(a=a%2と同じ)
+= 左辺の後に
右辺を連結して代入
最低(15) 右→左 a+="風"→a
(a=a+"風"と同じ)

●インクリメント/デクリメント演算子
1増やしたい/減らしたい場合に使用する便利な記述。
左右両方にはオペランドを持たない特徴を持つ。単項演算子と総称される。

演算子 機能   優先順位   評価の方向 評価の例
++ 値を1増やす 最高(1) 左→右 a++→a
(a=a+1やa+=1と同じ)
-- 値を1減らす 最高(1) 左→右 a--→a
(a=a-1やa-=1と同じ)
型変換(3種類)

変数の型を別の型に変換することを型変換という。
●代入時の自動型変換
ある型で宣言された変数には、その型の値しか代入できません。
int型変数にはint型の整数だけ、String型の変数には文字列のみしか代入できないというのが原則。
int = age;
◯ age = 23;
× age = 3.2;
× age = "秘密";
しかし!!!!数値型にて…

「小さな型」の値を「大きな型」の変数に代入する場合に限って、「値が自動的に箱の型に変換されて代入」される。

Main.java
//例
public class Main {
  public static void main(String[] args) {
    float f = 3; //float型の変数にint型を代入
    double d = f; //double型の変数にfloat型を代入
    System.out.println(f);
    System.out.println(d);
  }
}
/*実行結果
3.0
3.0
*/

●強制的な型変換
※「大きな型」の値を「小さな型」の変数に代入することは原則できない。
しかし、「キャスト演算子」を用いることで強制的に行型変換することができる。
情報の欠損が発生する為、よほどの理由がない限り使わないこと。

(変換先の型名)式

Main.java
//例
public class Main {
  public static void main(String[] args) {
    int age = (int)3.2; //キャスト演算子
    System.out.println(age);
  }
}
/*実行結果
3
*/

●演算時の自動型変換
※前提として計算が行われる場合も「左右のオペランドは同一の型」が原則。
異なる型で演算を行なった場合…「大きな型に統一されてから演算」が行われる。

Main.java
//例
public class Main {
  public static void main(String[] args) {
    double d = 8.5 / 2;
    long l = 5 + 2L;
    System.out.println(d);
    System.out.println(l);
  }
}/*実行結果
4.25
7
*/

因みに、文字列(String)を含む演算時の型変換は、他方もString型に変換され連結する。

Main.java
//例
public class Main {
  public static void main(String[] args) {
    String msg = "私の年齢は" + 23;
    System.out.println(msg);
  }
}
/*実行結果
私の年齢は23
*/
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?