JaeWon's Devlog
article thumbnail
반응형

- 해당 내용은 백기선 님의 자바 온라인 스터디 공부 및 제출 목적

   -> https://github.com/whiteship/live-study/issues/4

 

4주차 과제: 제어문 · Issue #4 · whiteship/live-study

목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 (필수) 선택문 반복문 과제 (옵션) 과제 0. JUnit 5 학습하세요. 인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해

github.com


1. 목표

  • 자바가 제공하는 제어문을 학습하세요.

1.1. 학습할 것 (필수)

  • 선택문
  • 반복문

* 제어문

- 기본적으로 코드는 위에서 아래 순으로 읽으며 실행하게 된다. 모든 작업을 순차적으로 실행할 수 있다면 상관이 없겠지만, 어떠한 코드는 반복이 필요할 수 있고, 어떠한 코드는 다시 맨 처음부터 실행해야 할 수도 있는 경우가 존재한다.
- 이와같은 상황을 제어문을 사용하여 코드 실행 흐름을 제어할 수 있다.
- 제어문의 종류로는 선택문(if, if-else, switch-case), 반복문(for, while, do-while), 분기문(break, continue, return) 이 있다

2. 1. 선택문

  • 조건식의 결과에 의해 실행 될 코드를 선택할 수 있는 구문.

2.1. 1-1. if 문

- 가장 기본적인 제어문으로 조건이 충족할 시 지정한 블록({})의 코드를 실행

<java />
int a = 1; int b = 3; int c = 1; // 결과 : 서로 같은 수 입니다 if(a == c){ System.out.println("서로 같은 수 입니다."); } // 결과 : X if(a == b){ System.out.println("서로 같은 수 입니다."); }

2.2. 1-2. if-else 문

- 조건이 충족할 시 실행한 코드와 충족하지 못한 경우에 대한 코드도 실행

<java />
int a = 1; int b = 3; // 결과 : 서로 다른 수 입니다 if(a == b){ System.out.println("서로 같은 수 입니다."); } else { System.out.println("서로 다른 수 입니다."); }

2.3. 1-3. if-else if-else 문

- 여러가지 조건을 사용할 경우에 사용(ex: 학점)

- 각 조건이 충족할 시 지정한 블록({})을 실행

<java />
int a = 3; // 결과 : a는 3입니다. if(a < 3){ System.out.println("a는 3보다 작은 수 입니다."); }else if(a > 3){ System.out.println("a는 3보다 큰 수 입니다."); }else if(a == 3){ System.out.println("a는 3입니다."); }else{ System.out.println("a는 숫자가 아닙니다."); }

2.4. 1-4. switch 문

- 변수에 대해 조건을 확인하고, 조건에 따라 분기하여 코드 실행

- 기본적인 

<java />
int a = 2; // 결과: a는 2입니다. switch(a){ case 1: System.out.println("a는 1입니다."); break; case 2: System.out.println("a는 2입니다."); break; case 3: System.out.println("a는 3입니다."); break; case 4: System.out.println("a는 4입니다.:"); break; default: System.out.println("a는 1,2,3,4가 아닙니다."); break; }

- switch문은 if-elseif-else문으로도 변경이 가능하다.

<java />
int a = 2; if(a==1){ System.out.println("a는 1입니다."); }else if(a==2){ System.out.println("a는 2입니다."); }else if(a==3){ System.out.println("a는 3입니다."); }else if(a==4){ System.out.println("a는 4입니다."); }else{ System.out.println("a는 1,2,3,4가 아닙니다."); }

2.5. 1-5. break 문

- 제어문에서 코드를 실행 후 다음 제어문 코드(반복, case)를 실행하지 않고, 다음 코드를 실행

<java />
int a = 2; // 결과: a는 2입니다. // a는 3입니다. swtich(a){ case: 1 System.out.println("a는 1입니다."); break; case: 2 System.out.println("a는 2입니다."); case: 3 System.out.println("a는 3입니다."); break; default: System.out.println("a는 1,2,3이 아닙니다."); break; }

- 위의 예제에서 a는 2이므로 case: 2 블록의 코드를 실행하지만, break가 없기때문에 계속 switch문을 실행하게 되면서, case: 3 블록의 코드도 실행하게 된다.

- case: 3에서는 break가 있기때문에, 더 이상 실행하지 않고 switch 문을 종료한다.

3. 2. 반복문

- 조건이 참이 될 때까지 블록의 코드를 반복적으로 실행

- 루프를 사용하면 코드를 여러 번 또는 조건이 만족할 때까지 반복적으로 실행할 수 있다

- for, while, do-while 이 있다.

3.1. 2-1. for 문

- 개발자가 설정한 조건이 만족 할때까지 블록의 코드를 계속해서 실행

- for(초기식; 조건식; 증감식) { 반복할 코드 }

<java />
int a = 3; int i = 1; // 결과: 1,2 for(i ; i < a; i++){ System.out.println(i); i++; }

- i=1, a=3 이므로 i<a 를 만족하기때문에 for 문의 코드를 실행한다 -> 출력 : 1

- i=2, a=3 이므로 i<a 를 만족하기때문에 for 문의 코드를 실행한다 -> 출력 : 2

- i=3, a=3 이므로 i<a 를 만족하지 않기 때문에 for 문의 코드를 실행하지 않는다.

3.2. 2-2. 향상된 for 문

- JDK 5.0 부터 배열 혹은 컬렉션을 순회시에 조금 더 향상된 for 문을 사용

- for(타입 변수명 : 배열/컬렉션) { 반복할 코드 }

<java />
int number = 60; int[] numArr = {10,20,30,40,50,60,70,80,90,100}; for (int num : numArr){ if(number == num){ System.out.println("num는 60입니다."); break; } }

- numArr의 배열을 순회하며 각 배열의 값을 num의 변수로 사용

- num이 60이면 for 문 반복을 종료(break)

3.3. 2-3. while 문

- 특정 조건이 참인 경우에 블록의 코드를 계속해서 수행

- while(조건식) { 조건식이 true(참)일 경우 반복할 코드 }

- 조건식이 항상 참일 경우에는 무한하게 while 문의 코드가 실행되면서, 다른 코드를 수행 할 수 없게 될 수 있다.

<java />
int a = 1; int b = 3; // 결과: 1, 2 while(a<b){ System.out.println(a); a++; }

- a=1, b=3 이므로 a<b 를 만족하기때문에 while 문의 코드를 실행한다 -> 출력 : 1

- a=2, b=3 이므로 a<b 를 만족하기때문에 while 문의 코드를 실행한다 -> 출력 : 2

- a=3, b=3 이므로 a<b 를 만족하지 않기 때문에 while 문의 코드를 실행하지 않는다.

<java />
int a = 1; // 결과: 1,2,3 ... 무한반복 while(true){ System.out.println(a); a++; }

- 조건이 항상 true이기 때문에 계속해서 while문의 코드를 실행하게 된다. -> 출력: 1, 2, 3 ....

- 항상 true인 경우에도 break문을 통해 무한히 반복하는것을 막을 수 있다.

<java />
int a = 1; // 결과: 1,2,3 while(true){ System.out.println(a); a++; if(a == 3){ break; } }

- a가 3이 되면 break를 통해서 while문을 종료한다.


참고

- https://github.com/jongnan/java-study-with-whiteship/blob/master/week4/week4.md

- https://lob-dev.tistory.com/entry/Live-StudyWeek-04-%EC%A0%9C%EC%96%B4%EB%AC%B8-%EA%B3%BC%EC%A0%9C

반응형
profile

JaeWon's Devlog

@Wonol

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!