이번에는 반복문에 대해 배워보자. 반복문의 종류로는 for문, while문, do-while문이 있다. 반복문은 나중에 CRUD를 구현할 때 자주 쓰이므로 정확히 알아두는 것이 좋다.
반복문은 명령문이나 코드를 반복하며 이는 실행문, 처리문을 반복한다는 의미이다.
반복문을 작성할 때에는 코드 오류를 줄이기 위해 큰틀 먼저 작성하고 채워 넣는다.
**실행문**
}
1) for문이 처음 실행될 때 초기화식 실행
2) 조건식을 평가해서 true면 실행문 실행, false면 for블록 실행하지 않고 종료
3) 실행문이 실행되면 증감식을 실행하고 다시 조건식 평가
4) 조건식을 평가해서 true면 실행문 → 증감식 → 조건식 반복, false일 경우 종료
🙋♂️ 간단한 예제를 살펴보자
for(int i=1; i<10; i++) {
//조건이 true일 때 반복 실행
System.out.println("images/index_"+i+".jpg");
}
🙋♂️ 구구단예제
System.out.println("for");
System.out.println("구구단");
// 구구단 (2단~9단)
for (int i = 2; i < 10; i++) {
System.out.println(i + "단");
for (int j = 1; j < 10; j++) {
System.out.println(i + "X" + j + "=" + i * j);
}
}
int i =2; //변수초기화 바깥에 함
1) 조건식이 true면 실행문 실행 → 다시 조건식으로 감
2) 조건식이 false면 while문 종료
🙋♂️ while(true)를 이용한 로그인기능예제를 살펴보자.
System.out.println("로그인 기능");
// 메뉴선택: 1.회원가입(join), 2.로그인(login), 3.종료(exit)
// Scanner, while(true), if, break
// 아이디, 비밀번호를 입력해서 DB저장 데이터랑 비교
// 둘다 같으면 "로그인 성공"
// 아이디가 틀리면 "아이디가 틀립니다."
// 비밀번호가 틀리면 "비밀번호가 틀립니다" -> 콘솔에 출력
String id = "m111";
String pw = "1111";
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("메뉴선택: 1.회원가입(join), 2.로그인(login), 3.종료(exit)");
String menu = input.next();
if (menu.equals("login")) {
System.out.println("아이디 입력: ");
String userId = input.next();
System.out.println("비밀번호 입력: ");
String userPw = input.next();
if (userId.equals(id)) {
if (userPw.equals(pw)) {
System.out.println("로그인성공");
} else {
System.out.println("비밀번호가 틀렸습니다.");
}
} else {
System.out.println("비밀번호가 틀렸습니다.");
}
} else if (menu.equals("join")) {
System.out.println("회원가입 페이지");
} else if (menu.equals("exit")) {
System.out.println("종료합니다.");
break;
} else {
System.out.println("메뉴 선택 오류입니다. 다시 선택해주세요.");
}
}
input.close();
[ while과 차이점 ]
1) 실행문 먼저 실행
2) 조건식에서 평가
3) true면 실행문 → 조건식 반복
4) false면 do-while종료
tip) do{}while 큰틀먼저 짜고→ 조건식 작성→ 실행문은 제일 나중에 작성
🙋♂️ do-while을 활용한 예제를 살펴보자.
int i = 2;
do {
System.out.println(i + "단 입니다.");
int j = 1;
do {
System.out.println(i + "X" + j + "=" + (i * j));
j++;
} while (j < 10);
i++;
} while (i < 10);
for (int i = 0; i < v1.size(); i++) {
System.out.println(v1.get(i));
}
List<integer> list = new Vector<Integer>;
for(integer el: list){
System.out.println(el);
}
.
.
.
신용권, 『혼자공부하는 자』, 한빛미디어(2023)