Skip to content

Latest commit

 

History

History
180 lines (144 loc) · 4.07 KB

Chapter03.md

File metadata and controls

180 lines (144 loc) · 4.07 KB

3 制御文

制御文はプログラムの動きをコントロールするためのものです


3.1 if文

if(条件){
    処理1;
}else{
    処理2;
}

if文を使うとある条件が満たされているかどうかによって処理を分岐させることができます。 条件が満たされていれば処理1を行い、条件が満たされていなければ処理2を行います。

if(条件1){
    処理1;
}else if(条件2){
    処理2;
}

else ifは最初の条件が満たされていない場合、別のある条件(ここでは条件2)が満たされている場合、処理を行うことができます。 また、if文の条件部分にはboolean型を返す式を書きます。この真偽値によって実行される文を切り替えることができます。

boolean result = true;
int x = 3; 
int y = 3;
if(result){
    System.out.println("resultはtrueです");
}else{
    System.out.println("resultはfalseです");
}

if(x > 5){
    System.out.println("xは5より大きいです");
}else{
    System.out.println("xは5より小さいです");
}

if(x > y){
    System.out.println("xはyより大きいです");
}else if(x == y){
    System.out.println("xはyより等しいです");
}else{
    System.out.println("xはyより小さいです");
}
resultはtrueです
xは5より小さいです
xはyより等しいです

3.2. switch文

swicth(式){
    case1:
        値1にマッチした処理
        break;
    case2:
        値2にマッチした処理
        break;
    case3:
        値3にマッチした処理
        break;
    case default:
        どのとも一しなかったときに処理
        break;
}

switch文は処理をで分岐させることができます。 switch文でマッチすることができる値の型は以下の通りです

  • char
  • byte
  • short
  • int
  • Integer
  • String

default:はswitch文に送られた整数がcaseのどの値とも一致しなかったときに処理されます。 また、caseの最後にbreak;を記述しない場合、次のcaseの中も処理してしまいます。

int medal = 2;
switch(medal){
    case 1:
        System.out.println("Gold");
        break;
    case 2:
        System.out.println("Silver");
        break;
    case 3:
        System.out.println("Bronze");
        break;
    case default:
        System.out.println("None");
        break;
}
Silver

上記のコードでは変数medalの値によって出力を変えています。 サンプルコードではmedal = 2なので、case 2の中のSystem.out.println("Silver");の処理を行います

NullPointerException

switch文でマッチさせる値がNullだった場合、NullPointerExceptionが投げられます。


3.3. 三項演算子

条件式 ? マッチした場合値 : マッチしなかった場合値;

三項演算子はマッチするかどうかを判定する条件式とマッチした場合の値、マッチしなかった場合の値を指定する演算子です。 if-else文を簡略化した記述方法です。

if-else文を用いたサンプル:

int a ;
int b = 20
if(b > 15){
    a = 10;
}else{
    a = -10;
}
System.out.println(a);
10

三項演算子を用いたサンプル:

int b = 20
int a = b > 15 ? 10 : -10;
System.out.println(a);
```

~~~java
実行結果:
10

3.4. switch式

Java 12から入った新しい要素としてswitch式というものがあります。 switch文とswitch式の違いはswitch式は値を返さないのに対し、switch式は値を返すというものです。->を使用することで、:breakの記述を省略できます。

var 変数n = swicth(式){
    case1 -> 変数nに代入する値;
    case1 -> 変数nに代入する値;
    case1 -> 変数nに代入する値;
    case1 -> 変数nに代入する値;
    default -> どのとも一しなかったときに変数nに代入する値;
}