🎂 while문
어떠한 조건(true)까지 반복 실행할 때
while(조건) { // 조건 - 언제까지 반복할 지 정해주는 기준점
반복 실행 영역
}
✔ false 입력했을 경우
while(false) {
System.out.println("처음하는 반복문 while");
}
// Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unreachable code
at day01_211001.while_demo.main(while_demo.java:8)
→ 실행되지 않을 것이라는 Err 문구
위의 경우들은 반복 조건이 true나 false로 그 값들이 고정되어 있어.
우린 이걸 이제부터 하드코딩이라고 부르기로 했으요./
while문 연습
int i = 0;
while(i<10) {
System.out.println("Coding Everybody");
i++;
}
조건 : i < 10 → 1~9는 true지만 ~0, 10~은 false (비교 연산자는 오직 true / false 두 값만 가짐)
i = 0 < 10 니까 true → print메서드 실행 → i++ = i + 1 → 0+1 = 1 = i에 새로 대입된다.
다시 while문 반복
i = 1 <10 니까 true → print메서드 실행 → i++ = i + 1 → 1+1 = 2 = i에 새로 대입된다.
∞반복!
언제까지? 조건이 false 될 때 까지 (i=10 < 10은 false 니까 while문 종료)
🎂 for문
while문을 기반으로 하지만 더 효율적!
for(초기값;종료조건;반복실행) {
반복 실행 구문
}
while문을 for문으로 바꿔보자
int i = 0;
while(i<10) {
System.out.println("Coding Everybody");
i++;
}
for(int i=0;i<10;i++) {
System.out.println("for문은 간단하고 재밌지");
}
while문, for문 응용
int i=10;
while(i>=0) {
System.out.println("while문 응용"+i);
i--;
}
for(int i=10;i>=0;i--) { // i<=5
if(i<=5) { // i>=0 을 하게 되면 i=10 <= 5가 false니까 for문, if문 종료되어 아무것도 출력X
System.out.println("for문 응용도 가능하지"+i);
}
}
i=10>=0은 true → if문 진행 → 10<=5 false 니까 print메서드 출력 X
i-- → 10-1= 9 = i 대입하여 for문 재실행
🎂 반복문의 효용
변수 i의 값을 바꿔주고 싶음 + 반복 조건의 값도 바꿔주고 싶을 때
🎂 반복문 제어
반복문을 멈춰주는 소중한 칭구칭긔
- break
if문 조건이 true면 break; 가 실행되어 for문이 끝난다
for(int i=0;i<10;i++) { if(i==5) break; System.out.println("Hello"+i); }
Hello0
Hello1
Hello2
Hello3
Hello4
5<10 true니까 if문 실행 → 5==5도 true → break; 실행 → for문이 완전히 끝나고 다음 명령문으로 내려갈거야 - continue
if문 조건이 true면 해당 값은 print메서드를 출력하지 않고, for문의 3번으로 가서 i의 초기값을 바꾼 다음 다시 false 값이 나올때까지 반복
for(int i = 0;i<10;i++) {
if(i==5)
continue;
System.out.println("Hello"+i);
}
Hello0 Hello1 Hello2 Hello3 Hello4 Hello6 Hello7 Hello8 Hello9 |
4까지는 break와 똑같아
i=5 == 5 true → continue; 실행 → print메서드 출력X → i++로 가서 초기값을 바꿔 반복. 종료 조건(i<10)이 될 때 까지
🎂 반복문 중첩
for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
System.out.println(i+""+j);
}
}
result: 00 01 02 03 04 05 06 07 08 09 10 ~ 99
1. 첫번째 for문이 0에서 시작하여 true값을 가지고 두번째 for문을 만남
2. 두번째 for문도 0에서 시작하여 true값을 가지니 print메서드 출력: 00
3. 첫번째 for문(i++)이 아니라 두번째 for문(j++)으로 가서 j의 초기값을 바꿈: 0 → 1
4. 두번째 for문이 false될 때까지 반복 : 09, 10<0은 false → print메서드 출력X
5. 첫번째 for문(i++) i의 초기값 변경 후 다시 반복 : 10
6. 2~4번 반복 하다 i=10<10은 false값이니 for문 종료
💬 print메서드에서 문자 타입의 데이터가 들어가는 순간, 정수는 숫자가 아닌 문자 그 자체로 바뀜
그래서 위와 같은 결과가 나오게 된다
""를 넣지 않으면 숫자 데이터라 i와j 두 수를 한 값이 나온다.
'하다보면 되겠지 머.,. > 생활코딩_JAVA' 카테고리의 다른 글
배열 - for-each, 오류와 한계 (0) | 2021.10.03 |
---|---|
배열 (0) | 2021.10.03 |
조건문2 - switch문 / 논리연산자 (0) | 2021.09.30 |
조건문 (2) | 2021.09.14 |
연산자, 비교와 Boolean (0) | 2021.09.14 |