2014年9月17日水曜日

- 式と演算子 - Java



今日は、前回学んだ 変数 や値を使って計算をする。

Java でいう計算とは、
変数や値を用いて行う計算処理だけでなく
変数に値を代入すること も含まれる。



package blog;

public class Calculation {

 public static void main(String[] args) {

  // 変数宣言と代入
  // 7 を int型の変数 week に代入(計算)
  int week = 7;

  // 変数宣言と代入
  // week(7が代入されている)*24 を oneWeekTime に代入(計算)
  int oneWeekTime = week * 24;

  System.out.println("一週間は" + week + "日間です。");
  System.out.println("一週間は" + oneWeekTime + "時間です");

 }

}









式の構成要素


week = 7 を分解すると 
week」 「=」 「7」  の三つに分けられる。

week」「7」 の部分を オペランド (operand) という。
=」 の部分を 演算子 (operator) という。

すべての式はオペランド、演算子という二つの要素だけで構成されている。


オペランド

数字「10」「3.14」や文字列「Javaの勉強」など、ソースコードに記述されている値のことを
リテラル という。
リテラル はデータ型を持っている。
変数の学習の際も書いたように、int,double,boolean,String 以外のデータ型はあまり使わないから
覚える必要はない。


演算子

演算子は4種類ある。
よく使うけど、使っているうちに覚えるから無理に暗記する必要はない。
けど、内容をよく理解して書いたほうがいい。

算術演算子

ひとつめは、算術演算子
左右の数値オペランドを使って四則演算を行うための演算子。



package blog;

public class ArithmeticOperator {

 public static void main(String[] args) {

  // days は、一年間の日数を表す変数
  int days = 365;

  // hour は、一日の時間を表す変数
  int hour = 24;

  // year は一年が何時間かを表す変数
  // days と hour を 算術演算子 の 乗算 で計算
  int year = days * hour;

  // sleepTime は わたしの睡眠時間を表す変数
  double sleepTime = 7.5;

  System.out.println("一年は" + year + "時間あります!");

  // sleepTime と days を算術演算子 の 乗算 で計算
  System.out.println("そのうち" + sleepTime * days + "時間、寝てます。");
  System.out.println("もったいないですね……。");
 }

}



文字列結合演算子
ふたつめは、文字列結合演算子
左右の文字列オペランドを結合して1つの文字列にする演算子。
package blog;

public class StringExpressions {

 public static void main(String[] args) {
  System.out.println("文字列" + "結合" + "演算子" + "!!!");
  System.out.println("「" + "とくに" + "難しいことは" + "ないように" + "思える" + "」"
    + "(^o^)");

 }

}









代入演算子
みっつめは、代入演算子
右オペランドの内容を左オペランドの変数に代入する演算子。


package blog;

public class AssignmentOperator {

 public static void main(String[] args) {

  double weight = 47.3;

  System.out.println("わたしの体重は" + weight + "kgです");

  double weightLoss = 0.3;

  // 代入演算子は 右 から 左に評価されるから
  // weight(47.3) から weightLoss(0.3) が減算される
  // weight(47.3) は 上書きされて weight(47.0)になる
  weight -= weightLoss;

  System.out.println("ダイエットをして" + weight + "kgになりました");
 }
}





インクリメント・デクリメント演算子
よっつめは、インクリメント・デクリメント演算子
変数の中身を1だけ増やしたり、減らしたりする演算子。

ちなみに、
インクリメント (increment) とは 増加
デクリメント (decrement) とは 減少 
という意味。

今日学習した演算子の中で、算術演算子のような単純なものを抜かすと、
インクリメント演算子の使用頻度がもっとも高い気がする。
重要だけど、難しくはないから、使って慣れるのがいいと思う。


package blog;

public class IncrementOperator {

 public static void main(String[] args) {
  int time = 15;
  System.out.println("今は" + time + "時です");

  // time(15) に 1 を加算
  time++;
  System.out.println("次は" + time + "時です");

  // time(16) に 1 を加算
  time++;
  System.out.println("その次は" + time + "時です");

  System.out.println("人生はその繰り返しです。");
 }

}





時間は有限なので、がんばろう!ということで。
(ループ使わないでインクリメント演算子使ういい例が思いつかなかったです。すみません。)

変数、演算子を理解したら、計算は完璧です。
暗算が難しく、かつ、電卓がないときに、コードを書いて解決した経験は今のところないけれど
簡単な体重計算、筋肉量計算などは作れそうですよね。
わたしは、途中まで作って、仕様を考え直しているうちに、
毎日、体重を入力するのが面倒だと判断して頓挫しました。

0 件のコメント:

コメントを投稿