👓

Java基礎(真偽値と条件分岐)

2023/09/25に公開

この記事でわかること

  • 真偽値(boolean)について
  • 条件分岐(if,switch)について
  • 繰り返し処理(while,for)について
  • 配列について

Javaの学習をまとめました。よろしくお願いします。(Java学習2日目)

真偽値(boolean)

真偽値は「true」「false」の2つで結果を表示する値です。また真偽値のデータ型は「boolean型」です。

sample1
boolean bool = false; //データ型 変数名 = 値
sample2
boolean bool = 2 * 8 == 16; //データ型 変数名 = 値
System.out.println;
result2
true

論理演算子(&&,||)

論理演算子には「かつ」「または」「~ではない」などを表現する記号のことです。

~かつ(&&)

「~かつ」は「条件式1 && 条件式2」のように記述します。このとき、条件式1,2が共に真ならば「true」を返し、それ以外なら「false」を返します。

sample3
 //xの値を15とする
x > 10 && x < 20 // trueを返す(条件式1:真, 条件式2:真)
x > 10 && x < 14 // falseを返す(条件式1:真, 条件式2:偽)

~または(||)

「~または」は「条件式1 || 条件式2」のように記述します。このとき、条件式1,2のどちらかが真ならば「true」を返し、それ以外なら「false」を返します。

sample3
 //xの値を15とする
x > 10 || x < 20 // trueを返す(条件式1:真, 条件式2:真)
x > 10 || x < 14 // trueを返す(条件式1:真, 条件式2:偽)

~ではない

「~ではない」は「!」を用いることで表現することができます。

sample4
 //xの値を15とする
x >= 10 // trueを返す
x !(>= 10) // falseを返す

条件分岐(if,switch)

今回は「if」「switch」を使った条件分岐を紹介します。

if文の条件分岐

基本構造

if文の基本構造は以下の通りです。

sample5
   if (条件式){
	処理;
   }
sample6
    int x = 10;
   if (x == 10){
      System.out.println("正解です"); //複数の処理を記述できる
	System.out.println("xは10です")//これをブロックと呼ぶ
   }

else,else ifを使った条件分岐

「else」と「else if」を使うことで、「もしifならば〇〇を、ifでなくelse ifならば△△を、それ以外(else)ならば□□を実行してください」と記述できる。

sample7
    int x = 50;
   if (x >= 60){
      System.out.println("xは60以上"); 
   } else if (x >= 50){
	System.out.println("xは50以上で60以下"); 
   }else{
       System.out.println("xは50より小さい")}
result7
  xは50以上で60以下

switch文の条件分岐(case)

switch文は、「この条件式(case)の場合は、これを実行してください」をいくつも記述するイメージです。
「コロン:」「セミコロン;」が混在するので記述には注意が必要です。
また「break」を記述する必要があり、これは「もしこの処理を実行したならば、これより先の処理は実行しないでね」という意味になります。

defaultについて

どの条件式(case)に当てはまらないときに実行する処理のことです。if文で言う「else」のイメージでした。

sample8
   switch (条件の値){
     case1: //この条件式1の場合は、
     処理1; //処理1を実行してください
     break;
     case2:
     処理2;
     break;
     default: //どの条件式にも当てはまらない場合は、
     処理3//処理3を実行してください
     break:
   }

if文とswitch文をおみくじプログラムで比較

同じ処理の内容を、if文パターンとswitch文パターンそれぞれで記述してみます。

sample9-1
    int n = 1;
   if (n == 1){
      System.out.println("大吉"); 
   } else if (n == 2){
	System.out.println("小吉"); 
   }else{
       System.out.println("凶")}
sample9-2
   int n = 1;
   switch (n){
     case 1:
     System.out.println("大吉");
     break;
     case 2:
     System.out.println("小吉");
     break;
     default:
     System.out.println("凶")break:
   }

繰り返し処理(while,for)

繰り返し処理とは、指示した範囲内で同じ処理を自動的に繰り返す処理になります。

whileの繰り返し処理

while文の繰り返し処理の記述方法は以下の通りです。

sample10
   while (条件){
   繰り返す処理;
  }

記述するときのポイント(while)

繰り返し処理を記述で必要なポイントは以下の通りです。

  1. 変数の初期化
  2. 条件
  3. 繰り返す処理
  4. 変数の更新
sample11
   int i = 10; //1.変数の初期化
   while (i >= 3){ //2.条件
   System.out.println(i); //3.繰り返す処理
   }
   i --; //変数の更新

繰り返し処理の条件や変数の更新を間違えると、無限ループになるため注意!

forの繰り返し処理

for文の繰り返し処理の記述方法は以下の通りです。また記述するポイントは「while」と同様です。

sample12
   for(int = 1; i <= 5; i ++){ //for(1.変数の初期化; 2.条件; 4.変数の更新)
   System.out.println(i); //3.繰り返す処理
   }

「while」より短い記述方法で目的を達成できるイメージがつきました。

for文でsample10と同じ目的を達成する

sample12
+   for(int = 10; i >= 3; i --){
   System.out.println(i); 
   }

-   int i = 10; //1.変数の初期化
-   while (i >= 3){ //2.条件
   System.out.println(i); //3.繰り返す処理
   }
-   i --; //変数の更新

上記のように「for」だとスッキリした文章を記述できる。

break

「break」は繰り返し処理を終了させる方法です。if文と組み合わせて使うことが多いです。

sample12+α
   for(int = 10; i >= 3; i --){
+   if(i > 5){ //条件式の中に組み込むイメージ
+   break;
+   }
   System.out.println(i); 
   }

continue

「continue」はif文などの条件式に当てはまるならば、その週をスキップすることができます。

sample12+β
   for(int = 10; i >= 3; i --){
+   if(i % 2 == 0){ //条件式の中に組み込むイメージ
+   continue; //iが2で割り切れるならば、以下の内容を終了し、変数の更新をする
+   }
   System.out.println(i); 
   }

配列

配列は「データ型[] 変数 = {}」のように記述することで作成することができます。
また要素番号は、0から順に割り振られていきます。

sample13
   int[] numbers = {3,5,7}; 
   String[] amimals = {"cat", "dog", "rabit"}; //要素番号(0:cat, 1:dog, 2,rabit)
   
   System.out.println(amimals[1]);
result13
   dog

配列の上書き

配列の上書きをする場合は、「どの番号をどのように更新するのか」で実現できます。

sample14
   String[] amimals = {"cat", "dog", "rabit"}; //要素番号(0:cat, 1:dog, 2,rabit)
   System.out.println(amimals[0]);
   
   amimals[0] = "munchkin" //特定の要素番号を更新
   System.out.println(amimals[0]);
result14
   cat
   mumchkin

for文を使った配列

先ほど記述したfor文と配列を使って、コードを書いてみます。

sample15
   String[] amimals = {"cat", "dog", "rabit"};
   for(int i = 0; i < 3; i++){
    System.out.println("I" + "like" + amimals[i]);
   }
result15
   I like cat
   I like dog
   I like rabit 

上記のように「I like」の記述を1つでまとめることで、少ないコードで、文章を作成できました。

length

配列には要素を数える「length」と言う機能があり、要素番号の最終番号を「配列.length」と表すことができます。

sample15+α
   String[] amimals = {"cat", "dog", "rabit"};
+   for(int i = 0; i < amimals.length; i++){
-   for(int i = 0; i < 3; i++){
    System.out.println("I" + "like" + amimals[i]);
   }

長い配列になると配列の番号を自力で数えることは大変ですが、上記の方法で簡単に表すことができるとわかりました。

拡張for文を使った配列

拡張for文は、個別に新しい変数を作り、配列の要素を順に入れていくイメージです。「for文を使った配列」より短いコードで記述できたり、変数名を使用することで見やすくなると考えます。

sample15+β
   String[] amimals = {"cat", "dog", "rabit"};
-   for(int i = 0; i < 3; i++){
-   System.out.println("I" + "like" + amimals[i]);
+    for(String amimal: amimals){
+    System.out.println("I" + "like" + name);
   }

感想

いざコードを書いて見ると「:」や「;」が抜けてエラーが頻発しました。またfor文の書き方の順序もしっかりマスターしなければと思いました。これからもJavaの学習を続けていこうと思います。

この記事をかいた人

https://twitter.com/tya_dwc
23/6/1にDWCに入学し、主にRailsの学習に取り組みました。最近(9/25)にJavaの学習も取り入れて、現在はサイトを利用して学習を進めています。

Discussion