목차
1. 제어문 (조건문, 선택문)
2. 반복문
3. live-study 대시 보드를 만드는 코드를 작성 (Github 자바 라이브러리를 사용)
4. LinkedList를 구현
5. Array 를 활용한 Stack을 구현
6. 앞서 만든 ListNode를 사용해서 Stack을 구현
7. Array 를 활용한 Queue를 구현
8. 앞서 만든 ListNode를 사용해서 Queue를 구현
제어문이란 코드의 실행 흐름을 제어하는 구문을 의미한다.
일반적으로 코드는 작성된 순서대로 순차적으로 수행되지만 제어문을 통해 이런 흐름을 바꿀 수 있다.
if 문 : 조건식이 true 인 경우 코드를 수행한다.
public static void main(String[] args) {
if(true){
System.out.println("조건문이 true 임으로 수행됩니다.");
}
if(false){
System.out.println("조건문이 true 임으로 수행되지 않습니다.");
}
}
결과 -----------------------
조건문이 true 임으로 수행됩니다.
if - else 문 : 조건식이 true인 경우 if 블럭의 코드를 수행하고, false인 경우 else 블럭의 코드를 수행한다.
public static void main(String[] args) {
if(true){
System.out.println("조건식이 true 임으로 if 블럭의 코드를 수행");
} else {
System.out.println("조건식이 true 임으로 else 블럭의 코드는 수행하지 않음");
}
System.out.println("===========");
if(false){
System.out.println("조건식이 false 임으로 if 블럭의 코드는 수행하지 앟음 ");
} else {
System.out.println("조건식이 false 임으로 else 블럭의 코드를 수행");
}
}
결과 -----------------------
조건식이 true 임으로 if 블럭의 코드를 수행
===========
조건식이 false 임으로 else 블럭의 코드를 수행
if - else 문 : 여러 조건식을 사용할 수 있음.
public static void main(String[] args) {
int number = 33;
if ( number % 2 == 1){
System.out.println("number 은 홀수 입니다.");
} else if (number % 3 == 0){
System.out.println("number 은 3의 배수 입니다.");
} else {
System.out.println("모든 조건식이 false 입니다. ");
}
number = 36;
if ( number % 2 == 1){
System.out.println("number 은 홀수 입니다.");
} else if (number % 3 == 0){
System.out.println("number 은 3의 배수 입니다.");
} else {
System.out.println("모든 조건식이 false 입니다. ");
}
number = 40;
if ( number % 2 == 1){
System.out.println("number 은 홀수 입니다.");
} else if (number % 3 == 0){
System.out.println("number 은 3의 배수 입니다.");
} else {
System.out.println("모든 조건식이 false 입니다. ");
}
}
결과 -----------------------
number 은 홀수 입니다.
=======================
number 은 3의 배수 입니다.
=======================
모든 조건식이 false 입니다.
주어진 조건의 값에 따라 수행할 명령을 분기하는 제어문이다.
if - else 와 비슷하게 여러 조건을 분기할 수 있지만, if - else 는 순차적으로 조건을 확인하는 반면, switch 는 점프 테이블을 사용함으로 성능상 이점이 있고, 가독성도 뛰어나다.
public static void main(String[] args) {
int someCase = 4;
switch (someCase) {
case 1:
System.out.println(" 1번 케이스 ");
break;
case 2:
System.out.println(" 2번 케이스 ");
break;
case 3:
System.out.println(" 3번 케이스 ");
break;
case 4:
System.out.println(" 4번 케이스 ");
break;
case 5:
System.out.println(" 5번 케이스 ");
break;
}
}
결과 -----------------------
4번 케이스
코드를 보면 break 문이 쓰여져 있는데, break 문을 사용하지 않을 경우 해당 case 부터 모든 코드를 수행하게 된다.
public static void main(String[] args) {
int someCase = 4;
switch (someCase) {
case 1:
System.out.println(" 1번 케이스 ");
case 2:
System.out.println(" 2번 케이스 ");
case 3:
System.out.println(" 3번 케이스 ");
case 4:
System.out.println(" 4번 케이스 ");
case 5:
System.out.println(" 5번 케이스 ");
}
}
결과 -----------------------
4번 케이스
5번 케이스
추가적으로 enhanced switch 문이 생겨 -> 연산자를 사용할 수 도 있다고 한다. 사용해보려고, jdk 14를 설치하고
public static void main(String[] args) {
int someCase = 4;
switch (someCase) {
case 1 -> System.out.println("1번 케이스");
case 2, 3 -> System.out.println("2 번 / 3 번 케이스");
case 4 -> System.out.println("4 번 케이스");
case 5 -> System.out.println("5 번 케이스");
}
}
다음과 같이 코드를 작성했지만
Information:java: Errors occurred while compiling module 'whiteship-study'
Information:javac 14.0.2 was used to compile java sources
Information:2020-12-11 17:02 - Build completed with 1 error and 0 warnings in 2 s 246 ms
Error:java: invalid source release 12 with --enable-preview
(preview language features are only supported for release 14)
다음과 같은 에러메세지가 보여, 프로젝트 세팅을 이리저리 만져보았지만 결국 실패했다.. 추가적인 학습이 필요할 것 같다.
반복문을 사용하면 특정 조건에서 같은 명령을 반복해서 수행할 수 있다.
while(조건식){ 반복 수행할 명령 }
public static void main(String args[]){
int i = 0;
while (i < 5){
System.out.println("반복 : " + i);
i++;
}
}
결과 -----------------------
반복 : 0
반복 : 1
반복 : 2
반복 : 3
반복 : 4
다음과 같이 while 문을 활용할 수 있는데, 주의해야할 점은 반복을 탈출할 수 있는 조건을 만들어 놓지 않으면 무한루프에 빠지게 된다 .
for(초기화 식; 조건부; 증감부){ 반복 수행할 명령 }
public static void main(String args[]){
for(int i = 0 ; i < 5; i++){
System.out.println("반복 " + i);
}
}
결과 -----------------------
반복 0
반복 1
반복 2
반복 3
반복 4
while 문에 비해 초기화식과 조건부 증감부가 같은 코드라인에 있어 가독성이 뛰어난 것을 확인 할 수 있다.
do { 무조건 한번은 수행되는 명령 } while (조건식) { 조건이 참일 경우 반복 수행할 명령 }
public static void main(String args[]){
do{
System.out.println("여기는 무조건 수행");
} while (false);
}
결과 -----------------------
여기는 무조건 수행
이러한 do-while 문을 활용하여 사용자의 입력을 제한 해보도록 하자
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int doOrNot;
do{
System.out.print("0 혹은 1을 입력하세요 : ");
doOrNot = sc.nextInt();
} while (doOrNot != 0 && doOrNot != 1);
}
결과 -----------------------
0 혹은 1을 입력하세요 : 3
0 혹은 1을 입력하세요 : 4
0 혹은 1을 입력하세요 : 2
0 혹은 1을 입력하세요 : 1