LIFE LOG(かけざんブログ)

【Java基礎】演算子を学ぼう



 本日は演算子について学びましょう

 

 

・基本的な演算子

プログラミングでは%、++、+=などを使用して、割り算の余りだけを求めたり、

1だけ値を増やすといった様々な演算を行ないます。

このような何かの演算を意味する記号を演算子といいます。

 

主な算術演算子
演算子 概要
+ 加算 1 + 2 // 3
減算 5 – 2 // 3
* 乗算 3 * 4 // 12
/ 除算 5.0 / 2 // 2.5
% 剰余 5 % 2 // 1
+ 文字列の連結 “A” + “B” // AB
++ インクリメント x = 1;x++; // 2
– – デクリメント x = 1;x- -; // 0

 

・インスリメントとデクリメントの違い

インクリメント演算子++とデクリメント演算子ーーは、ある変数の値を1だけ増やし

たり逆に1だけ減らしたりするときに使用します。

 

++n

--n

 

前に付けるのを前置、後ろに付けるのを後置といいます。この演算子を式の中で使用する

場合、前置と後置では働き方が違宇野で注意が必要です。

 

  • 前置した場合:計算に使う直前に増減する
  • 後置した場合:計算に使用した直後に雑言する

 

前置の場合

a = 0;  

b = ++a +5

aの値に1を加算してa + 5を計算する。b =6、a =1になる

 

後置の場合

a = 0;  

b = a++ +5

aは0のままa + 5を計算し後でaに1を加算する。b =5、a =1になる

 

・四則演算子

  • 単項+、単項ーは変数にも使える 例 -a
  • 余剰は割った余りを求める
  • 余剰はdouble型にも使用できる

 

・文字越の連結

  • +は文字列と文字列を連結する連結演算子としても機能する
  • +は文字列の文字列以外の型の変数も連結できる

 

・加算と文字列連結の混在

  • a+bでは、a、b共に数値型なら+は加算の演算子として働く
  • a+bでは、aかbのどちらかがString型なら連結演算子として働く

 

・代入演算子

  • =は右辺の値を左辺の変数に代入する演算子である(等号ではない)
  • a = a + 1やb = b%5のような再代入ができる
  • 複合代入演算子は再代入を行うための演算子である 例 a = a + 1 b = b%5
  • 再代入される変数は予め初期化していく必要がある
  • 複合代入演算子は型変換エラーが起こらない
  • 代入演算子はa = b = c のように多重に使用できる
  • 複合代入演算子はa += b += c のように多重に使用できる

 

主な代入演算子
演算子 概要
= 右辺の値を左辺に代入 1 + 2 // 3
+= 右辺の値を加算した結果を代入 i += 5 // 15
-= 右辺の値を減算した結果を代入 i -= 5 // 5
*= 右辺の値を乗算した結果を代入 i *= 5 // 50
/= 右辺の値で除算した結果を代入 i /= 5 // 2
%= 右辺の値で除算した余りを代入 i %= 5 // 0
&= 右辺の値で論理積演算した結果を代入 i &= 5 // 0
|= 右辺の値で論理和演算した結果を代入 i |= 5 // 15
^= 右辺の値で排他的論理和演算した結果を代入 i ^= 5 // 15
<<= 右辺の値だけ左シフトした結果を代入 i <<= 5 // 320
>>= 右辺の値だけ右シフトした結果を代入 i >>= 5 // 0
>>>= 右辺の値だけ右シフトした結果を代入 i >>>= 5 // 0

 

 

 

 

 

 

 

 

【Java基礎】データ型の分類と役割

 

本日はデータ型の分類と役割について学ぼう

 

・データ型の分類と役割について

データには、文字列を使うものや数値を使うものなどいろんな種類のデータがあります。

Javaではそのデータの種類をデータ型と指定義しています。

データ型は大きく分けて2種類に分類されます。

まず一つ目は基本データ型です。これは変数野中に値そのものが入っている型を指します。

基本データ型は、整数型浮動少数型文字型論理型の4種類です。

整数型:int型、byte型、short型、long型

浮動少数型 :double型、float

文字型: char

論理型: boolean

もう一つは参照型です。これは変数の中にデータがある場所を指すものが入っている方を指します。参照型は、配列型クラス型インターフェース型の3種類です。

 

基本データ型と参照型

 

・変数とは

変数とは、いわゆるアプリの中で扱うデータを一時的に保存しておくための入れ物です。変数を利用するには、まずその変数が「数値/文字列などどんな値を格納できるのか」「どんな名前を付けるのか」「最初に格納しておく値はなにか」などを宣言しておく必要があります。
たとえば以下は、double(小数点値)を格納するnumという変数を、初期値3.14で宣言する例です。

 

・名前の付け方

  • プログラマが自由につけて良い名前を識別子と言う
  • 識別子には数字、英字、と2つの記号(_、$)が使用できる
  • 数字から始まる識別子は使えない
  • 名前の長さに事実上制限はない
  • 基本的には小文字を使用する
  • 変数名は小文字で始め、クラス名は大文字で始める

・変数宣言

  • 変数は使う前に名前を宣言しなければならない
  • 型に関わらず、既に宣言した変数と同じ名前の変数は宣言できない
  • 宣言と初期化は同時に行って良い
  • 変数と代入する値は同じ値でないといけない

・キャストについて学ぼう

自動型変換ができないのは、情報の損失が発生する原因でした。しかし、それを承知の上で

プログラマの責任で強制的に型変換をするこおtができます。

これをキャストと言います。キャストは何らかの理由で、自動変換とは逆の方向に変換したいときに使用します。

  • キャストの書き方:(変換したい型)+キャスト対象 例:int n = (int)10.0
  • 自動変換できない型へ変換するときはキャストする
  • boolean型はどのような型にもキャストできない
  • String型は cher型など基本データ型にはキャストできない

エスケープシーケンス

文字の中にはキーボードから入力できない特殊な文字があります。

このような文字については¥を最初につけた2つの文字の組み合わせで「1文字分」

を表すことができます。これをエスケープシーケンスと言います。

例:’¥t'(タブ)、 '¥n'(改行)などがあります。

【Java基礎】基礎知識を学ぼう

 

 

本日はプログラミング基礎知識を勉強していきましょう。

 

 

  • プログラミング言語とは

    コンピュータに命令を伝えるためにために作られた

    人工的な言葉のこと。

    そもそもコンピュータは指示がないと何も出来ません。

    そのためコンピュータに理解できる言葉を使用して、命令を読み取らせるようにします。

    コンピュータが理解できる言葉は0と1だを並べた記号(機械語)なので機械語

    プログラムを書くのは大変です。

    なので、まずは機械語に翻訳することが人間に理解出来る言葉でプログラムを設計します。

    これがJavaやCなどのプログラミング言語です。

    プログラムを機械語に翻訳してくれるプログラムをコンパイラといい。

    コンパイラによってプログラミング言語機械語に翻訳します。

    こうして私たちはコンピュータに命令を伝えることが可能になりました。

構造化プログラミングとは

誰でも品質の安定したプログラミングを書けるようにしようと考えたのが

構造化プログラミングです。

プログラミングの処理の記述には、次の3つの基礎構造(論理構造)だけを使うことが

推奨されています。

  • 順次構造 上から下へへ記述された順に処理を実行する
  • 分岐構造 条件によって2つの命令文の仕方だけを実行する
  • 反復構造 一定の条件が成立している間、同じ命令文が繰り返される

構造化定理

この3つの構造だけでプログラムを構成できることは構造化定理として証明されてい 

ます。

 

  • Java言語の特徴①

    通常は、プログラムの実行方法や表示方法、データの表現や保管方法が違うため、

    CPU(コンピュータの中枢)や基本ソフト(OS)が異なるコンピュータでは同じ

    プログラムを利用することができません。

    しかし、Java言語では作成したプログラムでは同じプログラムを様々なOS(プラッ 

    トフォーム)上で利用することができます。これをマルチプラットフォームといいま

    す。

    マルチプラットフォームが可能な理由として、Java言語ではコンパイラがプログラム

    を特定の機関語に翻訳するのではなく仮想言語に変換するからです。

    Javaの仮想言語をJavaバイオコードといい、それを実行するシステムを

    Java仮想マシンと言います。

 

  • Java言語の特徴②

    現在のJava言語には膨大な数のクラスライブラリ(部品を集めたもの)があります。

    2つ以上の処理を実機するマルチスレッド機能や、データベースにアクセスを容易にする

    JDBC、オブジェクトの後始末を自動化するガベージコレクションなどなど、便利で先進的な機能がたくさんあります。