反復文(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?");
}
}
}
'IT自主学習 (2023.05.23~) > Java(2023.05.23~)' 카테고리의 다른 글
プログラミング自主学習 14日目 二次元配列 (0) | 2023.06.02 |
---|---|
プログラミング自主学習 13日目 非公開プログラム作成 (0) | 2023.06.01 |
プログラミング自主学習 11日目 Boolean&比較演算子/条件文/条件文の応用/==とequalの違い/論理演算子 (0) | 2023.05.30 |
プログラミング自主学習 10日目 Method/グローバル変数・ローカル変数/オブジェクト・Class/Instance (0) | 2023.05.29 |
プログラミング自主学習 9日目 条件文/配列/反復文 (0) | 2023.05.28 |