본문 바로가기

ITスクール(2023.07.04~)/Java(2023.07.04~)

ITスクール 5日目 UTF-8/var/あまりの複合代入演算子/短絡評価/ビット演算子/制御文

UTF-8

 

人間コンピューター

 

エンコーディング(person to computer) 我々は入力した文字、数字などを一定な規定により、変換する行為。

例)AAAA ➡ 100101010101

 

様々な規則があるため、エンコーディングの方法も様々存在する。

以前勉強したASKII、Unicodeが典型的な文字エンコーディングである。

 

UTFはUnicodeの文字エンコーディングである、Javaは基本的にUTF-16という方法でエンコーディングするが、

全ての文字を2byteに変換するため、ASKIIにも対応する文字まで2byteに処理するのはもったいない。

そのため、WEBではUTF-8でエンコーディングするのが普通だ。

 

UTF-8は文字を1~4byteにより柔軟にエンコーディングができるからだ。

 

デコーディング(computer to person)コードを文字に変換すること。

 

 

var

Java 10以上のバージョンからはデータータイプを入力しないで、変数を代入することもできる。

コンパイル時、自動的に変換されたコンパイルされる。

var num = 10;     compile ----------->   int num = 10; 
var dnum =5.5;      compile ----------->   double num = 5.5;
var str = "안녕";     compile ----------->   String str = "안녕";

 

しかし、二つの制限がある。

 

①varはローカル変数のみ使用できる。

②一度宣言した変数は同じデータータイプしか受けない。

 

先ほどのvar strをテストすれば、

str = "안녕하세요"    compile OK
str = 16;                    <---------- compile ERROR

このようにエラーが発生する。

 

あまりの複合代入演算子

 

<四則演算>

 

sum += 500

<---------------

sum = sum + 500

sumに500を足した結果を左のsumに入れる。

 

spendMoney -= 1000

<----------------

account = account - 1000

accountに1000を引いた結果を左のaccountに入れる。

 

 

<あまり>

 

★leftMoney %=  500

<----------------

leftMoney = (leftmoney / 500) + x 

leftMoneyを500に分けた後のあまりを入れる。

 

短絡評価(short circuit evaluation)

論理演算子で、値により演算をスキップし、boolean値をリータンする。

 

int i = 100;
int k = 10;

boolean value = ((i = i+399>500) && ( k = k-10==0))   false && true であるため、左の条件式を演算してから終了
                <------  false  ----> (x)
<result>
i = 499
k = 10 

boolean value = ((i = i+1==500) || ( k = k-10==0))   true && false であるため、左の条件式を演算してから終了
               <------  true  ----> (o)
<result>
i = 500
k = 10

 

ビット演算子

ビット演算子の被演算子は0,1であるため、整数(byte,short,int,long)のみ被演算子に使える。

charは負数がないため、表現できない。

 

 

制御文

構造的プログラミング(制御構造、ブロック{ }構造)

 

1.  順次制御

     int a;                 //変数宣言

                 a = a+ 10;    //変数代入

 

2. 選択制御

 

(1)  if(if, if~else, if~else if ~ else)

1) if [1)if ->  2)if -> 3) if ] 

trueかfalseかif文の条件1),2),3)を全部チェックする。

WEBでは会員登録など各項目を全部チェックする際に、ifのみ使用する場合もある。

2) if ~else  (if or else) 

3) if ~ else if ~ else