【読書】独習Java メモっぽいレポート　三枚目

メモっぽいレポート３枚目。

#第３章Javaの制御ステートメントの概要

3.1 ifステートメント


ifのステートメントはJavaでは選択ステートメントまたは条件ステートメント
と、呼ばれている。
ifのステートの動作は、値が真か、偽かの２つの動きがあり、
真か偽かを調べるために、「関係演算子」というものがある。

「等しいことを比較する」

```java
i == 10
```
「対象となる値より未満か超えるかを比較する」

```java
//大きいかどうか
i > 10

//小さいかどうか
i < 4
```

「対象となる値より等しいまたは以上か以下かを比較する」

```java

//以下か、または等しいか
i <= 10

//以上か、または等しいか
i >= 10
```


3.2 if-elseステートメント


if-elseのステートメントを使えば

```java
if(i % 2 == 0){

  System.out.println("偶数");

}
if(i %　2 != 0){

　　　System.out.println("奇数");

}
```
と、やっていたことを以下のようにできる。

```java
if(i % 2 == 0){

  System.out.println("偶数");

}else{

 　System.out.println("奇数");

}
```

3.3 コードのブロック


コードのブロックとは```{}```で囲った(グループ化した)ステートメントで、以下のようなもののことを指す。

```java
static{
   System.out.println("灼熱"）
　　　　　　System.out.println("Black.by"）
　　　　　　System.out.println("Naughty"）
　　　　　　System.out.println("DigitalTank"）
}
```

コードブロックの中かに書かれているステートメントは必ず実行される。


3.4 forステートメント


Javaには３つループステートメントが存在する。(while　ステートメント　do-whileステートメント、　for ステートメント)
そのうちの一つであるforステートメントは以下のように書く。

```
for(int i = 0; i < 0; i+１)
```

このforステートメントを使うことにより

```
for(int i = 1; i < 10; i+１)
  System.out.println(i）;
```
とすることで```1 2 3 4 5 6 7 8 9 ```のような結果が得られる。

forループの動作は最初に```int = 0; ```初期化が実行され
```i < 0 ``` で条件を満たしているか満たしていないかの評価がされ、
最後に```i+１```が実行される。
```int = 0; ```（初期化）についてだがこれはfor文に入って一回しか実行されない。

3.5 インクリメント演算子とデクリメント演算子


インクリメント演算子とは

```java
i++; ++i;
```
と、いうように書き、デクリメント演算子は

```java
i--; --i;
```
と書く。

※代入ステートメントとして使う場合だけなら```++i``` ```--i```ともして良い。

また、インクリメント演算子とデクリメント演算子を使うことにより、3.4(forステートメント)であった
```for(int i = 0; i < 0; i+１) ```
の```i + 1 ```の部分を```i++ ```や```i--```と置き換えることが可能。

```java
for(int i = 1; i < 10; i++)

for(int i = 1; i < 10; i--)
```

3.6 バックスラッシュコード

バックスラッシュコードとは¥または＼をつけて表すコードのことである
よく使われるバックスラッシュコードとして```¥n \n ```がある。

これは改行を意味し、

```java
System.out.print("New line");
System.out.println("CarriageReturn　\rFGH");

結果：New lineCarriageReturn　
```
のような結果で表示される文字列を

```java
System.out.print("New line \n");
System.out.println("CarriageReturn　\rFGH");

結果：New line 
    CarriageReturn　
```
上記のような形で出力することができる。
バックスラッシュコードにはこのほかにも

```java
¥b \b
¥r \r
¥f \f
¥" \"
¥' \'
¥0 \0
¥¥ \\
¥値(0~7) \値(0~7)
¥値値(0~7)(0~7) \値値(0~7)(0~7)
¥値値値(0~３)(0~7)(0~7) \値値(0~３)(0~7)(0~7)
¥uxxxx(４桁の16進定数) \uxxxx(４桁の16進定数)
```
上記のように多くの種類がある。

3.7 関係演算子と論理演算子


論理演算子は、論理積・論理和・排他的論理和、否定で判別する。

関係演算子の戻ってくる結果はbooleanで会って論理演算子はbooleanに働きかけるので
下記のようにセットで使われることが多い。

```java
if(i < 3 && i == 1)
```

論理演算子の種類として下記の様なものがある。

「両方が真である時」(AND)

```java
if((i < 3) & (i / 5))

if(i < 3 && i == 1)
```

「どちらかが真である時」（OR）

```java
if(i < 3 | i == 1)

if(i < 5 || i <= 6)
```

「どちらの値も違う時に真となる」

```java
if(i <= 6 ^ i == 1)
```

「等しい時に真となる」

```java
if(i == 1)
```

「等しくない時に真となる」

```java
if(i ！= 1)
```

「否定・○○でない時に真となる」
```java
!a
```
3.8 三項演算子 

if-elseの間にthenが入った if-then-elseというステートメントがある。

書き方は以下の様になる

```java
 (mini < max) ? mini : max
```
この場合　maxよりminiが小さかったらminiが結果として返り、
そうでなければmaxが結果として返ってくる。

#第４章：制御ステートメントと演算子

4.1 ifステートメントのネスト
ネストとは入れ子になっている状態を指す。

```
if(...)
 if(...)
```

```
if( ...){

  if( ...){

  }
}
```

下記の様な状態をif-else-ifラダーという

```java
if(...)hoge;
 else(...)hoge;
    if(...)hoge;
      else(...)hoge;
```
これは以下の様に変えて書くことができる

```
if(...)

 else if(...)

 else if(...)

 else if(...)

 else(...)
 
```

今日はここまでで、４章は次に続く。