🐕

プログラミング自主学習 12日目 反復文/配列/反復文&配列/制御文総合応用

2023/06/15に公開

反復文(Looping Statement)

While

反復回数が分からない際に、利用する。
無限ループに設定されているが、for文のように、int iというカウンター変数を使用して、コントロールすることもできる。

while(boolean){

code;

}

int i = 0
while ( i < 3 ) {
sysout.println (2);
sysout.println (3);
i = i + 1 or i++;
} 

  1. int i = 0である
  2. 0は3より小さい。
  3. したがってtrueである。
  4. trueなので、sysout printlin(2)とsysout printlin(3)を表示する。
  5. i = 0 + 1
  6. したがって、iは1となった。
  7. 1は3より小さい。

...

For

for(int x = y; boolean ; 増減式){


    code;


}
for(int j = 0; j < 3; j++) {
sysout.println (2);
sysout.println (3);
}

  1. int j = 0である
  2. 0は3より小さい。
  3. したがってtrueである。
  4. trueなので、sysout printlin(2)とsysout printlin(3)を実行する。
  5. jは増減式ブックにはいり、j + 1に入る。
  6. したがって、jは1となった。
  7. booleanに入り、比較する(1は3より小さい。)
  8. trueであるため、また、sysout printlin(2)とsysout printlin(3)を実行する。

配列(Array)

配列は多量のデータをまとめるため、反復文と使用すれば、非常に効率が上がる。

[INPUT]

String users ="luffy , shanks , naruto"String[] users = new String[3];    //  [3]: 3つの値を収納するキャビネットを作る。
users[0] = "luffy";               //配列の数字(index)は[1]ではなく、[0]から始まる。
users[1] = "shanks";
users[2] = "naruto";

System.out.println(users[1]);
System.out.println(users.length);  //length: 配列の長さ(キャビネットの数)を取得する。
                                   //length()は文字列の長さを表示する。
[OUTPUT]
shanks
3

また、最初から要素が決まっている場合、配列を作成する際に直接要素を指定することもできる。

String[] users = {"luffy","shanks","naruto"};
System.out.println(users[1]);
System.out.println(users.length);

[0], [1], [2]をインデックス(Index)、"luffy","shanks","naruto"を要素(element、要素、원소)という。

String型配列usersを宣言すると同時に"luffy","shanks","naruto"を初期化する。

反復文&配列

指定された配列の要素を反復して表現することで<li>egoing</li>という形式で主力するプログラムを作りたい。
長さ3の文字列配列であるが、まずは長さ3万の配列のとうに膨大なコードだと想像してみよう。
手作業で要素を反復する作業は非現実的かもしれない。

そのような場合、反復文と配列を使用することで、反復作業をなくし、コードをまとめることができる。


しかし、このコードには問題が生じる可能性がある。配列の長さと'For'ループのb条件式の整合性に注意する必要がある。そうでないと以下のようにエラーが発生する。


正しい動作を確保するためには、forループの条件式を配列の長さに合わせて設定する必要がある。例えば、for (int i = 0; i < users.length; i++)のように記述することで、配列の範囲内で反復処理が行わる。

制御文総合応用

break :反復文の動作を中止する。

public class AuthApp3 {
       public static void main(String[] args) {
               
      String[] users = {"egoing", "jinhuck", "youbin"};
    String inputId = args[0];
 
    boolean isLogined = false; //ログインができるかできないか決定するフラグ変数
          for(int i=0; i<users.length; i++) {
             String currentId= users[i];
               if(currentId.equals(inputId)) {
                isLogined= true; break;
                  }
           }
               
        System.out.println("Hi, ");
          if(isLogined) {
            System.out.println("Master!!");
          }else {
             System.out.println("Who are You?");
          }
     }
}

Discussion