ProgateでJavaを学んでみた【コース2は配列と繰り返し】

ProgateでJavaを学ぶコース2

Progate javaコース2

今回はProgateでJavaのコース2を学んでいきたいと思います。

Javaのコース1の内容は下記の記事にまとめていますのでもしよろしければ↓
ProgateでJavaを学ぶ【コース1は変数、数値、文字列操作】

たぶんコース2の途中から有料になると思いますので、980円はらうかこの記事の内容を見てください。

もしくは、個人的にはこちらの本をおすすめしたいです↓

この本は本当に説明が豊富でよかったです。

それではまなんだことをかいていきたいと思います。

真偽値

真偽値とは false trueのことですね。日本語で表現するなら「true→〇〇だったら」「false→〇〇じゃなかったら」になりますね。真偽値は条件分岐でも重要になってきますね。

比較演算子

真偽を判定するときに比較演算子というものを使いますね。
== → 等しかったら
!= → 等しくなかったら
< → より大きい > → より小さい
<= → 以上 >= → 以下

それと変数に真偽値を代入できるようにする boolean型の変数があります。

特段注意点もないのでなれるのみですね。

    System.out.println(true);//true
    System.out.println(false);//false
    System.out.println(12/4 == 3);//true
    System.out.println(12/4 != 3);//false   
    boolean bool = 3 * 9 == 27;
    System.out.println(bool);//true

論理演算子

論理演算子は複数条件式を設定したいときとか否定したときに使います。具体的には以下の記号をもって表現します。

&& → 「〇〇かつ〇〇」
|| → 「〇〇または〇〇」
! → 「〇〇ではない」

    System.out.println(true || false);//true
    System.out.println(false && true);//false
    System.out.println(8 < 5 && 3 >= 2);//false
    System.out.println(8 < 5 || 3 >= 2);//true
    System.out.println(!(8 < 5));//true

条件分岐

条件分岐はif文を使います

ifを日本語になおすと 次のようになります
if(x > 5){} → 「もしxが5より大きかったら」

書き方は
if(x > 5){
//処理
}
のようにして波括弧を使用します。{}なみかっこのことをブロックといいます。xが5より大きかったらブロック内の処理がなされるということですね。

    if (false) {
      //falseなのでなにも実行されない
    }
    int x = 5;
    if(x > 2){
      System.out.println("xは2より大きい" );
    }

else else if

else{}は条件が満たされなかったときの処理をかきます else if(){}には複数の条件を指定したいときに使います。
詳しくは下記のコードのとおりです

    int number = 12;
    if (number < 10) {
      System.out.println("10より小さい");
    }else if(number < 20){
      System.out.println("10以上、20より小さい");//これが出力される
    }else{
      System.out.println("20以上");
    }

switch case文

switch文は条件がいっぱいあるときに使います。

最初のswitch(「ここに値」){} switchに値を設定しておいてcase で処理を振り分けます。break;は途中で処理を終了するために書かれています。break;は絶対にかかないとエラーになります。言葉では説明しにくいのでコードをみたほうがわかりやすいです。switchはなれるまでが大変ですがswith(){}このような形になると覚えておくとよいかもしれません。

    int number = 12;
    
    // switch文を用いて、numberを3で割った余りで条件分岐をしてください
    switch(number % 3){
      case 0:
        System.out.println("3で割り切れます");//余りは0なのでcase 0が適用されこの文が出力される
        break;
        case 1:
          System.out.println("3で割ると1余ります");
          break;
          case 2:
            System.out.println("3で割ると2余ります");
            break;
            default:
              System.out.println("どれにもあてはまりませんでした")
    }

switch文のdefaultはどれにもあてはまらなかったときに実行されます。

繰り返し

javaの繰り返しは while, do while, forなどがあります。

while文

while文はの書き方は 「while(条件式){}」のような書き方になります。条件式が真つまりtureのときだけ繰り返しが実行されます。条件式がfalseになると繰り返しが終了します。

while文の処理を行う時は条件式の起点をつくるためにwhileブロックの外で変数を宣言することが多いです。

    int number = 10;
    
    // while文を用いて、繰り返し処理を作ってください
    while(number > 0){
      System.out.println(number);
      number--;
    }

for文

for文も条件式がfalseになると繰り返しを終了します。回数を指定して繰り返したいときなどに使います。
ちょっとわかりにくいですが 「for(変数の初期化; 条件式; 式;){//処理}」のような形になっています

    for(int i = 1; i <= 10; i++){
      System.out.println(i + "回目のループです");
    }

break

break;は繰り返しの途中で終了したいときに使います。

    int i = 1;
    while (i < 10) {
      // iが5の倍数のとき、繰り返し処理を終了してください
      if(i % 5 == 0){
        break;
      }
      
      System.out.println(i);
      i++;

continue

continue;は繰り返し処理で1回スキップしたいときに使いますcontinueは処理を中断せず、また繰り返し処理へと戻っていきます。

    System.out.println("=== for文 ===");
    for (int j = 1; j < 10; j++) {
      // jが3の倍数のとき、処理をスキップしてください
      if(j % 3 == 0){
        continue;
      }

配列

配列は複数のデータが入った箱のようなものです。

Javaの配列は以下のように宣言します

「 データ型[] 変数名 = {“”, “”, “”} 」

String[] names = {"にんじゃわんこ", "ひつじ仙人", "ベイビーわんこ"};

配列の要素へのアクセス

配列にはインデックスといって要素に番号がわりあてられています。番号は先頭が0番からはじまります。先ほどのnamesという配列にアクセスするには下記のようにします。

    String[] names = {"にんじゃわんこ", "ひつじ仙人", "ベイビーわんこ"};
    System.out.println(names[0]);//にんじゃわんこ
    System.out.println(names[2]);//ベイビーわんこ

配列の要素を更新

配列の要素の更新は配列の要素にアクセスして 値を代入します。

書き方は「 配列名[インデックス番号] = 値 」 のように書きますね

    String[] languages = {"Ruby", "PHP", "Python"};
    System.out.println(languages[1]);//PHP
    languages[1] = "Java";
    System.out.println(languages[1]);//Java

 

配列の全要素にアクセス

配列の全要素にアクセスするにはfor文を使います。また条件式にlengthプロパティというものを使います。配列名.lengthとすると配列の要素数が取得できるので、要素数分だけfor文で繰り返すというわけです。

    String[] names = {"にんじゃわんこ", "ひつじ仙人", "ベイビーわんこ"};
    
    // for文を用いて、「私の名前は◯◯です」と出力してください
    for(int i = 0; i < names.length; i++){
      System.out.println("私の名前は" + names[i] + "です");
    }

foreach

Javaにはforeach文はありませんが拡張for文をつかって表現できます。見出しタイトルがforeachになっていてもうしわけないのです。拡張for文を使うと配列の要素をひとつひとつ取り出すことができます。

書き方は 「 for(データ型 変数名 : 配列名){} 」のように書きます。コロンを使うのは特徴的ですが右から左に要素が流れていると考えればわかりやすいですね。

    String[] names = {"にんじゃわんこ", "ひつじ仙人", "ベイビーわんこ"};
    for(int i = 0; i < names.length; i++){
      System.out.println("私の名前は" + names[i] + "です");
    }

ProgateでJavaコース2まとめ

今回は学んだ内容は 配列と繰り返しですね。とくに配列は結構混乱しやすいですね。

配列定義のときに最初にデータ型と配列であることを宣言するととらえれば覚えやすいかもしれません → Stirng[]

その他はとくにないですが、for(int i)みたいに for文の中でもデータ型を宣言している点もポイントですね。

型指定はめんどくさいですが、わかりやすいというメリットがありますね。

次の記事はProgateでJavaを学ぶ【コース3は主にメソッド】 | 初心者のプログラミング