일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 오류
- 6kyu
- 파이썬
- monthPicker
- 사용자변경
- java
- CentOS8
- 서울복층에어비앤비
- Oralce
- 시즌1
- Codewars
- 이것이리눅스다
- 중첩쿼리
- 멀티쓰레드프로그래밍
- Linux
- JavaScript
- 주민번호마스킹
- VMware
- CentOS
- 이클립스
- Python
- 서울에어비앤비
- class파일바로보기
- 자바기초스터디
- 7kyu
- https
- 8kyu
- 남산타워뷰
- SQL
- Eclipse
- Today
- Total
보통사람
[Study-4주차] 제어문 본문
-
목표
- 자바가 제공하는 제어문을 학습하세요.
-
학습할 것 (필수)
-
선택문
-
반복문
-
-
과제 (옵션)
-
과제 0. JUnit 5 학습하세요.-
인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해질 것. -
이미 JUnit 알고 계신분들은 다른 것 아무거나!
-
-
과제 1. live-study 대시 보드를 만드는 코드를 작성하세요.-
깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크할 것. -
참여율을 계산하세요. 총 18회에 중에 몇 %를 참여했는지 소숫점 두 자리 가지 보여줄 것. -
Github 자바 라이브러리를 사용하면 편리합니다. -
깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 자주 테스트할 수 있습니다.
-
-
과제 2. LinkedList를 구현하세요.-
LinkedList에 대해 공부하세요. -
정수를 저장하는 ListNode 클래스를 구현하세요. -
ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요. -
ListNode remove(ListNode head, int positionToRemove)를 구현하세요. -
boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요.
-
-
과제 3. Stack을 구현하세요.-
int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요. -
void push(int data)를 구현하세요. -
int pop()을 구현하세요.
-
-
과제 4. 앞서 만든 ListNode를 사용해서 Stack을 구현하세요.-
ListNode head를 가지고 있는 ListNodeStack 클래스를 구현하세요. -
void push(int data)를 구현하세요. -
int pop()을 구현하세요.
-
-
과제5. Queue를 구현하세요.-
배열을 사용해서 한번 -
ListNode를 사용해서 한번.
-
-
1. 조건문(선택문)
-
조건식과 문장을 포함하는 {}(블록)으로 구성되어 있으며 조건 시의 연산 결과에 따라 프로그램의 실행 순서가 변경될 수 있음
-
if문과 switch문이 있으며 조건식이 하나라면 switch문이 효율적이나 switch문은 if문보다 제약이 많음
-
조건식의 결과는 반드시 true 또는 false이어야 함
-
중첩하여 사용 가능함
1.1. if문
-
가장 기본적인 조건문
-
if-else문, if-else if문도 있음
// if문
if (조건식) {
// 조건식에 해당하는 경우 수행할 문장
}
// if-else문
if (조건식) {
// 조건식에 해당하는 경우 수행할 문장
} else {
// 조건식에 해당하지 않는 경우 수행할 문장
}
// if-else if문
if (조건식1) {
// 조건식1에 해당하는 경우 수행할 문장
} else if (조건식2) {
// 조건식2에 해당하는 경우 수행할 문장
} else {
// 조건식1, 조건식2에 해당하지 않는 경우 수행할 문장
}
int i = 100;
if (i == 100) {
System.out.println("if");
} else {
System.out.println("else");
}
[ 실행결과 ]
if
1.2. switch문
-
하나의 조건식으로 여러 경우의 수를 처리할 수 있음
-
입력값 결과는 정수 또는 문자열이어야 함
-
case문의 입력값도 정수 또는 문자열만 가능하며 중복되면 안 됨 ( java 1.7 버전 이후부터 문자열 사용 가능)
switch (입력값) {
case 입력값1 :
// 입력값1인 경우 수행할 문장
break;
case 입력값2 :
// 입력값2인 경우 수행할 문장
break;
default :
// 해당하는 입력값이 없는 경우 수행할 문장
}
// case문을 여러개 사용 할 경우
switch (입력값) {
case 입력값1 :
case 입력값2 :
// 입력값1 또는 입력값2인 경우 수행할 문장
break;
case 입력값3 :
// 입력값3인 경우 수행할 문장
break;
default :
// 해당하는 입력값이 없는 경우 수행할 문장
}
int level = 3;
switch (level) {
case 1 :
System.out.println("Level :" + level);
break;
case 2 :
System.out.println("Level :" + level);
break;
case 3 :
System.out.println("Level :" + level);
break;
default :
System.out.println("Level이 없습니다.");
}
[ 실행결과 ]
Level : 3
2. 반복문
-
어떤 작업을 반복적으로 수행할 때 사용함
-
for문, while문, do-while문이 있음
-
중첩하여 사용할 수 있음
2.1. for문
-
반복 횟수를 정확하게 알고 있을 때 사용하면 좋으며 초기화, 조건식, 증감식으로 이루어져 있음
-
반복문 안에 수행되는 문장이 하나일 때는 괄호를 생략할 수 있음
-
조건식 생략 가능 (대신 이렇게 하면 무한 반복문이 됨)
-
for문의 수행 순서
-
초기화 실행
-
조건식 판단
-
조건식에 해당하는 경우 수행될 문장 실행
-
증감식 실행
-
for ( 초기화; 조건식; 증감식 ) {
// 조건식에 해당하는 경우 수행될 문장
}
- 초기화 : 반복문 실행시 처음에 한 번만 수행됨
for ( int i=0; ~ )
for ( int i=0, j=0; ~ ) // 같은 타입인 경우에 이렇게 여러개를 초기화 시킬 수도 있음
- 조건식 : 조건식이 참인 경우에만 반복문이 수행됨
- 증감식 : 반복문을 제어하는 변수의 값을 증가 또는 감소시킴
for ( ~; i++ )
for ( ~; i-- )
for ( ~; i+=1 ) // 이렇게 해도 됨
for ( ~; i++, j-- ) // 초기화처럼 증감식도 여려개 사용 가능함
for (int i=0; i<5; i++) {
System.out.println("i = " + i);
}
[ 실행결과 ]
i = 0
i = 1
i = 2
i = 3
i = 4
-
forEach문(향상된 for문)
-
Java 1.5 이상부터 배열과 컬렉션인 경우 기존과 다른 방법으로 for문을 처리할 수 있음
-
for ( 타입 변수명 : 배열 또는 컬렉션) {
}
int[] numArr = { 10, 20, 30, 40 };
// 기존 방식
for (int i=0; i<numArr.length; i++) {
System.out.println(numArr[i]);
}
// 향상된 for문 방식
for (int tmp : numArr) {
System.out.println(tmp);
}
[ 실행결과 ]
10
20
30
40
2.2. while문
-
조건식이 참인 경우만 반복문을 수행함
-
조건식 생략 불가
-
while문의 수행 순서
-
조건식 판단
-
조건식이 참인 경우에만 수행될 문장 실행
-
while (조건식) {
// 조건식이 참인 경우에만 수행될 문장
}
int i = 0;
while (i < 5) {
System.out.println("i = " + i);
i++;
}
[ 실행결과 ]
i = 0
i = 1
i = 2
i = 3
i = 4
2.3. do-while문
-
while문의 변형으로 기본적인 구조는 while문과 같으나 실행 순서가 다름
-
while문은 한 번도 실행되지 않을 수 있지만 do-while문은 최소한 한 번은 실행이 됨
-
while문 끝에 세미콜론(;) 잊지 않도록 주의
do {
// 조건식이 참인 경우에 수행할 문장들
} while (조건식);
int i =0;
do {
System.out.println("i = " + i);
i++;
} while ( i < 5 );
[ 실행결과 ]
i = 0
i = 1
i = 2
i = 3
i = 4
3. 기타
-
break문
-
반복문에서 사용할 수 있으며 자신이 포함된 가장 가까운 반복문을 벗어남
-
for (int i=0; i<5; i ++) {
if (i == 3) {
break;
}
// break문 때문에 3 이상은 출력되지 않음
System.out.println("i = " + i);
}
[ 실행결과 ]
i = 0
i = 1
i = 2
-
continue문
-
반복 문내에서만 사용 가능함
-
반복문을 벗어나는 게 아니라 다음 반복을 수행
-
for (int i=0; i<5; i ++) {
if (i == 3) {
continue;
}
// continue문 때문에 3만 빼고 출력됨
System.out.println("i = " + i);
}
[ 실행결과 ]
i = 0
i = 1
i = 2
i = 4
※ 참조
Java의 정석
'Study' 카테고리의 다른 글
[Study-6주차] 상속 (0) | 2020.12.22 |
---|---|
[Study-5주차] 클래스 (0) | 2020.12.13 |
[Study-3주차] 연산자 (0) | 2020.11.28 |
[Study-2주차] 자바 데이터 타입, 변수 그리고 배열 (0) | 2020.11.21 |
[Study-1주차] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 (0) | 2020.11.21 |