본문 바로가기

IT自主学習 (2023.05.23~)/Java(2023.05.23~)

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

反復文(Looping Statement)

While

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より小さい。

...

 

Whileは原始的であるため、自由度が高く、様々な具現ができる。

しかし、繰り返し回数が明確である場合は、For文を使った方が効率がいい。

 

For

for(int x = y; boolean ; code){}

for(int j = 0; j < 3; j++) {
sysout.println (2);
sysout.println (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?");
               }
     }
}