22.04.11 - 제어문, 반복문, 증감연산자
제어문 - [ 조건문과 반복문 ]
조건문 | 반복문 |
if - else | while |
else if | for |
switch - case | do - while |
조건문
- 조건에 맞으면 실행하게 해 줌
- 조건식에 들어갈 내용은 - 실행의 결과가 true나 false로 나오는 식
- if ( else , else if )
- switch ( case, break, default )
if
- 이거 아니면 저거인 상황에 사용
- if if if로 코드를 짜 놓으면
- 컴퓨터는 if if if 하나하나 다 본다.
- 처음 조건 통과했다치더라고 2번째 3번째 조건 볼 필요 없지만 다 본다.
else if
- 첫 번째 조건식을 통과하지 못했을 때만 다음 else if 문을 검사한다.
- 두 번째 조건식을 통과했다면
- 세 번째 조건식은 검사하지 않는다. 안 본다.
- 시작은 무조건 if
- else if는 여러 개 사용 가능 ( 단, 앞에 if가 존재해야 함 )
- else 사용하려면, 무조건 마지막에만 사용 가능
switch
- switch, case, default
- 컴퓨터 입장에서 생각 switch를 만났다 switch ( x ) - ( x의 값을 찾아서 출발 )
- case 값 1 : case 값 2: 애들이랑 x랑 비교 시작 - break;나 default; 만날 때까지
- x와 다른 애들은 실행하지 않고 다음으로 넘어간다.
- switch( )는 입력받은 값과 같은지 비교할 경우에 사용
- default는 else 같은 키워드이다. 특징도 같다.
- break; 를 안 해주면 참인 순간부터 switch문 끝까지 다 실행된다.
조건문 끝!
개념은 쉬운데 문제를 풀어보면서 익혀보아야 한다..
CodeUp - site 문제 참조해서 줄 예정
조건문 문제 시작
Question 01 :
정수 하나를 입력받고 - 입력받은 정수가 홀수면 "홀수" - 짝수면 "짝수"라고 출력
홀수 조건
( num % 2 ) == 1;
( num % 2 ) != 0;
Question 02 :
정수 하나 입력받고 - 입력받은 정수가 7의 배수라면 “7의 배수” 라고 출력
7의 배수 조건
( num %7 ) == 0;
Question 03 :
윤년 조건
1. 해가 4의 배수이면서 100의 배수가 아니면 윤년
2. 400의 배수이면 윤년
위 두 조건 중 하나라도 맞으면 윤년
1번 조건 ( A && B ) + || 또는 + 2번 조건 ( C )
만족하면 윤년
Question 04 :
월을 입력받고 ,, 해당 월의 계절을 출력하기
12, 1, 2 : winter
3, 4, 5 : spring
6, 7, 8 : summer
9, 10. 11 : fall
switch - case문은 참인순간부터 실행돼서
break;를 만나거나 default 만날 때까지 실행된다는 점을 이용해서 풀이
case 12 :
case 1 :
case 2 : System.out.println( "wineter" ); break;
반복문
- 반복문 3가지
- for , while, do-while
while
- if랑 문법 같다.
- but
- 반복문 문법들은 끝나는 부분 }을 만나면 다음 라인으로 가는 것이 아니라
- 처음으로 돌아간다. - while의 처음 부분은 조건식! 부분
컴퓨터 입장에서 보기
- 한 라인씩 실행하다가
- int 그릇 만들고 - 이름 cnt로 지정 - 거기에 값 0 대입
- while을 만났으니까 조건식 판단 - 참이면 수행
- hi 출력하고 나서
- cnt 라인 - 대입 연산자 오른쪽부터 수행 - cnt에 0 있었는데 +1 해서 1 대입
for
- for 기본 문법
컴퓨터 입장에서 보기
- while 때와 동일.
- for문이 등장한 이유 – 초기식, 조건식, 증감식 3줄을 1줄로!
- for문 만나면 초기 식부터 찾아간다. - int 그릇 이름 I – 값 0 대입
- 조건식 참이면 수행문 실행
- } 만나면 처음으로 돌아가는데 -> 증감식으로 이동
- 증감식 다음으로는 -> 조건식으로 다시 이동
- 참이면 수행문 실행 –> 증감식 이동
- 초기식은 최초의 1번만 실행된다.
- 쭉 하다가 조건식 거짓이면 – for문 빠져나온다
상황과 조건에 맞춰 for나 whilewhile 선택해서 사용하자~!
do –while
- do-while 기본 문법
while ( true ) 해주면 - 무한반복
while( false ) 해주면 - 1번 실행 - 끝 -
컴퓨터 입장에서 보기
- int 그릇 이름 x 에다가 3 대입
- do 만났다 일단 { } 실행
- while 조건식 참이면 do로 다시 가서 실행
- Hi 7번 출력됨
반복문 문제 시작
Question 01 :
정수 하나 입력받고, 입력받은 정수를 무한 출력하기
정수 하나 입력받고, 카운트 다운 하기 ex) 입력받은 수 3이면 3 2 1 출력
정수 하나 입력받고, 그 수 까지 출력하기 ex) 입력받은 수 3이면 1 2 3 출력
기본개념
Question 02 :
정수 하나 입력받고, 입력받은 정수를 출력하기
위 작업을 계속 반복한다.
단, 입력받은 정수가 0이라면 프로그램을 종료한다.
수를 입력받는 부분을 반복문 안으로 넣어준다.
반복문안에 0일 때 break를 만나서 반복문 빠져나오도록 추가
반복문 안에 있는 break; 는 가장 가까운 반복문 깨뜨리고 나가버린다!
Question 03 :
정수 하나 입력받고, 1부터 입력받은 수까지 출력하기
단, 짝수는 출력하지 않는다.
짝수 출력 안되게 하는 방법 2가지 체크
continue 만나면 처음으로 돌아간다.
for 문에서 처음으로 돌아간다는 의미는 - 증감식 부분으로 돌아간다는 의미!
증감 연산자
- +1 또는 –1해 주는 연산자
- 4가지 있다
- ++x
- --x
- x++
- x--
이클립스 팁
- 패키지 네임 - com . kh . main 이라고 만들면
- 따로따로 폴더 만들어준다!
- 컴파일러 에러 난 곳 확인해보는 단축키 - ctrl + 1
- 라인 선택하고 Alt + 위아래 화살표 : 코드 라인 이동
review
제어문, 반복문, 증감 연산자에 대해 배웠다.
문제풀이를 하면서 설명해주시는 부분이 새로웠다.
아마 학생들의 수준 체크도 할 겸
문제를 풀었다는 즐거움과 배운 거 활용하는 것을
느끼게 해주는 방법인 듯하다!
예전 첫 문제를 풀었을 때
" 맞았습니다! "를 본 희열이 생각났다ㅎㅎ
나의 실력과 풀이를 확인할 수 있는 것이 참 매력이다.
예습의 효과를 써먹고 있어서
아직은? 복습 개념으로 문제들도 풀어가면서
새로운 개념이나 Tip 들을 알아가고 배워가고 있다!