🏆

java基礎2(真偽/条件分岐/繰り返し/配列[拡張for文]など)

2024/09/23に公開

前回の続き
https://zenn.dev/takeda_kaho/articles/722773658cf662

⑤真偽値と条件式(比較演算子、論理演算子など)

真偽値

使うのはboolean型!!結果は(true)か(false)

boolean 変数名 = true; //もしくはfalse

比較演算子

比較演算子とは、値を比較するための記号で、比較した結果は真偽値(trueかfalse)になります。
「x == y」はxとyが同じかどうかを比較し、同じであればtrue、違っていればfalseとなります。

x == y //等しいかどうか
x != y //等しくないか
class Main {
  public static void main(String[] args) {
    
    // 「==」を用いて、値を比較した結果を出力します
    System.out.println(12 / 4 == 3); // 出力: true (12 / 4 は 3 なので比較結果はtrue)
    
    // 「!=」を用いて、値を比較した結果を出力します
    System.out.println(12 / 4 != 3); // 出力: false (12 / 4 は 3 なので比較結果はfalse)
    
    // 変数を定義し、値を比較した結果を代入します
    boolean bool = (3 * 9 == 27); // 3 * 9 は 27 なので比較結果はtrue
    
    // 変数boolの値を出力します
    System.out.println(bool); // 出力: true

    // 大小比較
    // 「4 + 2」と「6」を比較し、falseとなるようにしてください
    // 4 + 2 は 6 なので、6 > 6 は false になります
    System.out.println(4 + 2 > 6); // 出力: false
    
    // 「4 + 2」と「6」を比較し、trueとなるようにしてください
    // 4 + 2 は 6 なので、6 >= 6 は true になります
    System.out.println(4 + 2 >= 6); // 出力: true
    
  }
}

論理演算子

class Main {
  public static void main(String[] args) {
    // trueと出力されるようにしてください
    System.out.println(true || false);
    
    // falseと出力されるようにしてください
    System.out.println(false && true);
    
    // 「8 < 5」かつ「3 >= 2」の結果を出力してください
    System.out.println((8 < 5) && (3 >= 2));
    
    // 「8 < 5」または「3 >= 2」の結果を出力してください
    System.out.println((8 < 5) || (3 >= 2));
    
    // 「8 < 5」でない、の結果を出力してください
    System.out.println(!(8 < 5));  // 8 < 5 は false なので、その否定で true 
    
  }
}

⑥条件分岐(if、else if、switch文など)

最もよく使う条件分岐はif文です。

書き方
if (条件式) {
処理;
}

if

class Main {
  public static void main(String[] args) {
    
    int x = 5;
    // if文を用いて、変数xが2より大きいとき「xは2より大きい」と出力してください
    if (x > 2) {
      System.out.println("xは2より大きい"); // 出力される
    }
    
    // if文を用いて、変数xが8より大きいとき「xは8より大きい」と出力してください
    if ( x > 8) {
      System.out.println("xは8より大きい"); // 出力されない
    }
    
  }
}

else if

複数の条件を指定する際に使用する。

class Main {
  public static void main(String[] args) {
    int number = 12;
    
    // numberが20より小さいとき、どちらでもないときの条件分岐を追加してください
    if (number < 10) {
      System.out.println("10より小さい");
    } else if (number < 20) {
      System.out.println("10以上、20より小さい"); // 出力: 10以上、20より小さい
    } else {
      System.out.println("20以上"); // ここが実行されるのはnumberが20以上のとき
    }
  }
}

swith

条件分岐にはswitch文という構文もあります。
switch 文は、複数の条件を効率よく処理するための構文です。
switch文は条件の値がcaseの値と一致するとき、処理が実行されます。
swithの時はcaseの後ろのコロン(:)をつける

基本構文
switch () {
  case1:
    // 値1と一致した場合の処理
    break;
  case2:
    // 値2と一致した場合の処理
    break;
  // 追加のケース
  default:
    // どのケースにも一致しない場合の処理
}
例文
class Main {
  class Main {
  public static void main(String[] args) {
    int day = 3; // 例えば曜日を数値で表す(1=月曜日、2=火曜日、3=水曜日、...)

    switch (day) {
      case 1:
        System.out.println("月曜日");
        break;
      case 2:
        System.out.println("火曜日");
        break;
      case 3:
        System.out.println("水曜日"); // 出力: 水曜日
        break;
      case 4:
        System.out.println("木曜日");
        break;
      case 5:
        System.out.println("金曜日");
        break;
      case 6:
        System.out.println("土曜日");
        break;
      case 7:
        System.out.println("日曜日");
        break;
      default:
        System.out.println("無効な日付");
        break;
    }
  }
}

⑦繰り返し処理(while、for文など)

while文

繰り返し処理の代表的なものにwhile文というのがあります。
whileとは「〜の間」という意味の英語です。
while文では「条件がtrueの間、{ }内の処理を繰り返す」ことができます。

基本の書き方
while (条件) {
    // 条件がtrueの間、繰り返し実行される処理
}
.java
class Main {
  public static void main(String[] args) {
    int number = 10;
    
    // while文を用いて、numberが0より大きい場合に繰り返す処理
    while (number > 0) {
      System.out.println(number); // 現在のnumberの値を出力
      number--; // numberを1ずつ減少させる
    }
  }
}
コンソール
10
9
8
7
6
5
4
3
2
1

for

for文も繰り返し処理の1つです。
特に、繰り返し回数が決まっている場合に使います🧚‍♀️(whileとの違い)

基本構文
for (初期化; 条件式; 更新) {
   // 繰り返し処理
}
class Main {
  public static void main(String[] args) {
    // for文を用いて、繰り返し処理をつくってください
    for (int i = 1; i <= 10; i++) {  // 最初2つには( ; )気をつける
      System.out.println(i + "回目のループです");
    }
  }
}

break と continue

class Main {
  public static void main(String[] args) {
    System.out.println("=== while文 ===");
    int i = 1;
    while (i < 10) {
      // iが5の倍数のとき、繰り返し処理を終了してください
      if (i % 5 == 0) {
        break;  // 5の倍数になったらループを終了
      }
      
      System.out.println(i);
      i++;
    }
    
    System.out.println("=== for文 ===");
    for (int j = 1; j < 10; j++) {
      // jが3の倍数のとき、処理をスキップしてください
      if (j % 3 == 0) {
        continue;  // 3の倍数のときは、その周回をスキップ
      }
      
      System.out.println(j);
    }
  }
}
結果
=== while===
1
2
3
4
=== for===
1
2
4
5
7
8

⑧配列について

配列は、複数のデータをまとめて扱えるデータ構造です。
変数が1つの値しか保持できないのに対し、配列は複数の値をまとめて1つの変数に保持することができます。

基本構成
int[] numbers={1,2,3};
String[] names ={"hanako","mika","ayaka"};
System.out.println(names[0]); // 出力: hanako
System.out.println(names[1]); // 出力: mika
System.out.println(names[2]); // 出力: ayaka

配列の上書き

配列の要素はインデックスを使って上書きできます。

String[] names ={"hanako","mika","ayaka"};
System.out.println(names[0]); // 出力: hanako
names[0]="kei"; // ;忘れないこと!!
System.out.println(names[0]); // 出力: kei

配列の繰り返し処理

繰り返しをしたいときはforを使い、配列のすべての要素に対して繰り返し処理を行います。

基本的な書き方
for (int i = 0; i < 3; i++) {
    // 繰り返し処理
}

length

lengthは配列の要素数を自動的に取得できる便利なプロパティです。
length を使うことで、配列の要素数に応じて繰り返し回数が自動的に決まります。

lengthでの書き方
class Main {
  public static void main(String[] args) {
    String[] names = {"hanako","mika","ayaka"};

    for (int i = 0; i < names.length; i++) {
      System.out.println("私の名前は" + names[i] + "です");
    }
  }
}
コンソール
私の名前はhanakoです
私の名前はmikaです
私の名前はayakaです

多次元配列の活用

int [][] rooms = {{101,102,103},{201,202,203},{301,302,303}}

system.out.println(rooms[1][2])
// 出力
203 (1{201.202.203}表しててその3つの中の2(0.1.2だから3つ目=203)

なるほど理解(^_-)-☆

基本構文
for (型 変数名 : 配列名) {
 繰り返し処理;
}

これを使ってさっきの例題で同じ書き方してみると、、、

class Main {
  public static void main(String[] args) {
    String[] names = {"hanako", "mika", "ayaka"};

    // 拡張for文を使用して配列の要素を出力します
    for (String name : names) {
      System.out.println("私の名前は" + name + "です");
    }
  }
}

こっちの方が確かにわかりやすいかも🐣🩵


ここまで〜〜〜🐥

Discussion