본문 바로가기

수업 정리

6일차 수업 정리

Tip!
1. 프로그램을 만들때는 유저 친화적일지, 프로그래머 친화적일지 생각해야한다(index : 0~ / 1~)

** 제어문
    => 분기 - if(boolean), switch(value - 정수, 문자열)
    => 반복 - while(~동안), do~while(~때까지), for : 컬렉션의 데이터를 순회하기 위해
                - for(처음한번 수행 ; 조건 - boolean(false이면 빠져나감) ; 두번째부터 수행)
1. 무한 반복
  1) while(true){ (내용); }
  2) do{ (내용); }while(true);
  3) for( ; ; ){ (내용); }

2. 제어문 만들때 ;에 유의
    => if(조건); { }  //else가 있으면 에러이고 else가 없으면 if가 없는 것과 같음
    => switch(변수); { }  //에러
    => while(조건); { }  //반복하지 않고 1번만 수행
    => for(초기식; 조건식; 2회부터 반복식); { }  //반복하지 않고 1회만 수행
    => 괄호 뒤에 ;을 하는 경우는 do{내용} while(조건)

3. 내용이 한줄인 경우는 { }를 생략하는 것이 가능
    => 생략하지 않는 것을 권장

4. 제어문 안에서 만든 변수는 제어문 안에서만 사용 가능


5. 제어문 안에 제어문 사용 가능
    => scope의 법칙 : 쌍으로 만들어져야 하는 구문은 가까이에서 만든 것과 결합
                              영역이 다르면 동일한 이름을 가지고 기능을 부여해도 됨
                              여러곳에서 이름을 만든 경우 가까이에서 만든 이름을 먼저 찾음

** Break와 Continue
1. break : 반복문 안에서 분기문(if등)과 함께 사용하여 반복문을 종료하는 기능을 가진 명령어
    for(int i=0; i<5; i++){ 내용
    //조건이 true가 되면 break를 만나 반복문 종료
    if(조건){ break } }
   => switch에서 조건 없이 사용하여 switch구문을 빠져나감

2. continue : 반복문에서 분기문과 함께 사용되어 다음 반복으로 넘어가는 역할 
    for(int i=0; i<5; i += 1){ 
    //조건이 true가 되면 continue를 만나서 내용을 수행하지 않고 다음 반복으로 넘어감
    if(조건) { continue; } 내용 }

    while(9/14까지){ 하루씩 증가;
    if(토, 일, 공유일){ continue; }
    학원에 갑니다.

** 연습
System.out.print("*"); 별을 1개 출력
System.out.print("\n"); 줄바꿈

*         0~0
**        0~1
***       0~2
****      0~3
*****     0~4

1. 데이터의 개수가 1씩 증가. 
1 * i(변화량 * i를하고 첫번째 i에 대입해서 개수가 맞는지 계산, 맞지 않으면 개수에 맞춰 +,-를 해줌)

2. 반복 구조 안에서 패턴이 변경되는 경우 패턴이 변경되는 지점에서 분할하여 해결
    => 복잡한 문제가 주어지면 해결할 수 있는 단위로 분할하고, 합치면 됨

** 연습문제

1. 별 찍기
  *
 **
***
 **
  *

2. 문제 - 한글과 컴퓨터 코딩테스트 문제
(라인수를 입력받아서 그 줄 수 만큼 만들기 - 본 시험 문제)
    0 앞에 공백 4개 -5개
   1 2  앞에 공백 3개 중간 공백 1개 - 6개
  3   4 앞에 공백 2개 중간 공백 3개 - 7개
 5      6 앞에 공백 1개 중간 공백 5개 - 8개
7890123 공백 없이 숫자 9개
=> 숫자는 0~9까지 진행하고 다시 0으로 돌아와야 한다.
=> 첫번째와 마지막은 예외형태로 구현해야함(규칙이 안맞음)

'수업 정리' 카테고리의 다른 글

8일차 수업 정리(Class, 변수, Method)  (0) 2020.04.16
7일차 수업 정리  (0) 2020.04.14
5일차 수업 정리  (0) 2020.04.10
4일차 수업 정리  (0) 2020.04.09
3일차 수업 내용 정리  (0) 2020.04.08