버글버글
Java 수업 기록 (4) 반복문(for, while), break, continue 본문
[반복문(loop)]
▶ for 문
1. 연속된 숫자를 생성할 때 주로 사용 (어떤 실행문을 여러 번 반복해서 실행하는 경우에 사용)
2. 배열과 함께 자주 사용 (아직 안배운 내용)
3. 조건문을 만족하면 계속해서 실행
4. 실행문은 중괄호{}로 묶어서 표시
실행문 | |
for(초기문; 조건문; 증감문) { 실행문 } |
초기문 : 선언하듯이 선언해 두는 것 (int n = 1;) 조건문 : 비교 대상이 필요 (n <= 10) 증감문 : (++, --) |
예시)
for(int n = 1; n <= 10; n++) { System.out.print(n); } |
||
Console | 1234567910 |
▶ nested for문 (for안에 for이 포함되다)
1. 진짜 많으면 for안에 for안에 for 정도는 볼 수 있으나, 3개 이상의 for은 보기 어렵다.
예시)
1일차 1교시
2일차 2교시
...
1일차 8교시
2일차 1교시
...
3일차 8교시
for(int day = 1; day <= 3; day++) { for(int hour = 1; hour <= 8; hour++) { System.out.println(day + "일차 " + hour + "교시"); } } |
||
Console | 1일차 1교시 1일차 2교시 ... 3일차 7교시 3일차 8교시 |
▶ while 문
1. 특정 실행문을 여러 번 반복할 때 사용.
2. 특정 반복 횟수가 정해지지 않은 경우에 사용 ( ex : 통장 잔고 70,000원이 있는데, 450원씩 인출 시, 모든 통장 잔액 출력)
3. 조건식을 만족하면 계속해서 실행
4. 실행문은 중괄호{}로 묶어서 표시
5. 실행문이 단일 문장인 경우 중괄호{} 생략 가능
6. 조건문을 통해서 종료 시점을 판단
7. 파일 읽기, 데이터베이스 데이터 읽기에서 많이 사용
실행문 | |
while(조건문) { 실행문 } |
if문과 똑같이 생김 |
예시)
int balance = 79350; int money = 450; while(balance >= money) { System.out.println("잔액 " + balance + " 인출액 " + money); balance -= money; } System.out.println("잔액 " + balance); |
||
Console | 잔액 79350 인출액 450 잔액 78900 인출액 450 ... 잔액 600 인출액 450 잔액 150 |
▶ break 문
1. 반복문(for, while)을 종료시킬 때 사용
2. switch문을 종료시킬 때 사용
실행문 | |
while(true) { if(조건문) { break; } } |
if문과 똑같이 생김 |
예시)
1. 모금 목표 : 100,000원
2. 한 번에 50000원 씩 모금
3. 1회 모금액 50000원 현재 50000원
2회 모금액 50000원 현재 100000원
4. 3번과 같이 출력
int total = 0; int money = 50000; int serial = 0; int goal = 1000000; while(true) { if(total >= goal) { break; } total += money; serial++; System.out.println(serial + "회 모금액 " + money + "원" + "\t현재 " + total + "원"); } |
||
Console | 1회 모금액 50000원 현재 5000원 2회 모금액 50000원 현재 10000원 ... 20회 모금액 50000원 현재 100000원 |
▶ continue 문
1. 반복문(for, while)을 종료시키지 않고, 반복문의 시작 지점으로 이동
2. 반복문에서 실행을 제외하고 싶은 경우에 사용
* continue가 많이 들어가면 좋은 코드가 아니며, 대체코드가 많아 별도의 공부는 필요없고 이런게 있구나 라고만 알면 됨.
실행문 | |
while() { a; b; c; continue; d; e; f; g; h; } |
a, b, c만 실행하고 다시 while문으로 이동한다. 그래서 무한 반복 되므로 보통 if continue; 를 쓴다. |
예시)
1 ~ 100 중에서 3의 배수를 제외하고 모두 더하기
int total = 0; int n = 0; while(n < 100) { n++; if(n % 3 == 0) { continue; } total += n; } System.out.println("합계 " + total); |
||
Console | 합계 3367 |
- 아래 예시는 continue 없는 코드풀이.
- continue 없이 코드를 만드는 건 언제나 가능하다.
total = 0; n = 0; while(n < 100) { n++; if(n % 3 != 0) { total += n; } } System.out.println("합계 " + total); |
||
Console | 합계 3367 |
▶ 기타사항
1. System.out.println 에서 println의 'ln' 은 'line' 이라는 의미를 지님
- 개발을 하다가 " System.out.println(); " 이라는 문구를 자주 보게 될것이다.
- 이 의미는 줄 바꿈 이라는 의미임.
- "System.out.print();"는 줄을 바꾸지 않고 출력됨
2.
1) String stra;
stra = "★"
star = "★"
= 결론적으로 ★이 한 개
2) String stra = "";
stra = "★"
star = "★"
= 결론적으로 ★이 두 개
3. 원래 클래스 이름에는 패키지 다음에 마침표(.)를 적고 클래스 명을 적는다.
ex ) java.lang.System.out.println("Hello"); 가 원래 FM이다.
(프로젝트 > JRE System Library > java.lang)
- java.lang 패키지에 소속된 클래스들은 패키지를 생략할 수 있다.
4. Ctrl + Space bar 누르면 사용법이 나옴. 단, 괄호나() 세미콜론(;)이 없어야 한다.
'java > java 수업 기록' 카테고리의 다른 글
Java 수업 기록 (6) Java API - String(문자열) (0) | 2022.07.25 |
---|---|
Java 수업 기록 (5) Java API - 난수, timestamp 등 (0) | 2022.07.23 |
Java 수업 기록 (3) 분기문(if, if-else, else if, switch) (0) | 2022.07.21 |
Java 수업 기록 (2) 연산 및 연산자 (0) | 2022.07.20 |
Java 수업 기록 (1) 기본구조, 변수, 데이터타입, 타입변환 (0) | 2022.07.19 |