🐕
プログラミング自主学習 12日目 反復文/配列/反復文&配列/制御文総合応用
反復文(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++;
}
- int i = 0である
- 0は3より小さい。
- したがってtrueである。
- trueなので、sysout printlin(2)とsysout printlin(3)を表示する。
- i = 0 + 1
- したがって、iは1となった。
- 1は3より小さい。
...
For
for(int x = y; boolean ; 増減式){
code;
}
for(int j = 0; j < 3; j++) {
sysout.println (2);
sysout.println (3);
}
- int j = 0である
- 0は3より小さい。
- したがってtrueである。
- trueなので、sysout printlin(2)とsysout printlin(3)を実行する。
- jは増減式ブックにはいり、j + 1に入る。
- したがって、jは1となった。
- booleanに入り、比較する(1は3より小さい。)
- 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