2018/08/23 - [교육 노트/C++] - C++ 기초 강의 OT
2018/08/23 - [교육 노트/C++] - C++ 기초강의 1-1 기본문법-Hello World
2018/08/23 - [교육 노트/C++] - C++ 기초강의 1-2 기본문법-변수
2018/08/23 - [교육 노트/C++] - C++ 기초강의 1-3 기본문법-배열기초
2018/08/23 - [교육 노트/C++] - C++ 기초강의 1-4 기본문법-연산자와 사용자 입력
2018/08/23 - [교육 노트/C++] - C++ 기초강의 1-5 기본문법-분기문
프로그램을 만들다보면 같은 행동을 여러번 하거나 규칙에맞게 여러번 수행해야될 상황이 있을수 잇다.
예를 들어 1부터 10까지의 합을 구하고싶다면
만약 100까지 합을 구하고싶다면?
과 같이 될것이다.
이러한 복붙 노가다를 줄이고 반복작업을 쉽게 하기위해서나온것이 반복문이다.
1. for문
C++의 대표적인 반복문은 for문으로
다음과 같은 구조를 가진다.
선언부에서 for문에서 사용할 변수를 선언하고
조건부에서는 조건을 적어 해당 내용이 true이면 내용을 실행시킨다.
증감식은 해당 for문의 루프가 끝날때마다 한번씩 실행되는 부분이다.
중요한점은 (선언부 ; 조건부 ; 증감식) 이지 (선언부 , 조건부, 증감식) 이 아니다
for문에서 사용할 int i 를 선언하였고 i는 처음에 0이다.
조건식의 i < 10을 만족시키므로
내용이 실행되고
내용은 i+1 (1)을 출력한다
출력후 증감식 부분에서 i++ 을 수행하고 i는 1이된다
아직 i < 10을 만족시키므로
내용이 실행되고
i+1 (2) 를 출력한다
출력후 다시 증감식 ....
과 같은 과정을 거친후
i가 9일때 내용이 실행되고
증감식에서 i 가 10이 되면
i < 10을 만족시키지 못하므로
내용을 실행하지않고
for문을 종료하게 된다.
for문은 if문과 더불어 가장많이 쓰는 c++문법으로
for문과 if문만 알면 모든 프로그램을 짤수있다고 말하기도 할정도로 핵심적인 기능이다.
for문은 배열을 사용할때도 유용하게 사용할수있는데
처럼 배열을 순회 하는데 유용하게 사용 할 수 있다.
for문은 일정 range를 정해서 그만큼 반복하는데 특화되어있다.
그러나 이렇게 반복 범위를 정확하게 아는경우가 아닌경우
해당 조건이 만족하면 계속 반복하고 그렇지 않으면 반복이 끝나는 경우가 있을수도있다.
예를 들어 계산기 프로그램에서 계산을 1번만 할것이 아니라 원할때까지 반복하고싶은경우
사용자가 종료버튼 (+,-,/,* 대신에 'q'을 입력하는등) 을 누를때까지 반복하게 해야될것이다.
그럴때는 어떤 반복문을 써야할까
위 의 코드는 참거짓을 저장하는 bool 값인 loop변수를 두고
input 이 0이면 loop을 false로 변경하여 for문을 빠져나가게 한것이다.
위처럼 범위를 모르는 경우 그냥 선언부와 증감식을 제거하고 for(;조건;)만 적으면 된다.
근데 딱봐도 선언부, 증감식이 없는 for문은 쓸데없는 2개의 세미콜론 이 존재하고 이상하게 보인다.
그래서 이런상황에서 사용하기 알맞게 나온것이 while문이다.
2. while문
while문은 for문에서 조건 검사 부분만빼온것과 동일하다.
따라서 위의 포문은 while문으로 변경할수있는데
다음과 같다.
이러한 특성때문에 for문과 while문을 쓰는 상황은 조금씩 다른데
일반적으로 이러한 상황일때 for문과 while문을 사용하게된다
그러나 어디까지나 일반적일뿐
사실 for문 while문은 서로 똑같이 동작하게 변경 가능하여 원하면 다르게 사용해도 된다.
약간의 차이점이 있다면 for문을 while문으로 바꿀때
for문의 i는 for문 안에서 만 사용가능한 변수이고
while문의 i는 while문 밖에서도 사용가능한 변수이다.
이게 무슨뜻인가 하면
3. 변수 영역
변수는 한번 생성되면 그 변수를 사용할수 있는 범위가 존재한다.
크게 전역변수와 지역 변수로 나눌수있는데
전역변수는 프로그램 어디에서나 사용 할 수 있는 변수이고
지역변수는 해당 영역에서만 사용 할 수 있는 변수이다
여기서 globalV 가 전역 변수이고
나머지는 전부 지역 변수이다
지역변수는 선언이 된 이후로부터 해당 depth 의 영역이 끝날때까지 존재하는데
이 depth는 { } 로 구분된다
즉
{ //depth 1
{//depth2
}
}
더 깊은 위 코드 에서 local1은 더 깊은 depth안에서도 사용이 가능하다 (if문과 for문 안에서)
그러나 더 갚은 depth에 있는 변수는 {}영역을 넘어가면 소멸하므로 상위 depth 에서 사용이 불가능하다.
지금까지가 동아리에서 교육했던 1일차 내용이다.
해당 과정을 이해했다면
다음과 같은 실습과 프로젝트를 할 수 있을것이다.
1. 별찍기 프로그램을 제작하라 (예제 프로그램 참조)
2. 계산기를 제작하고 q를 입력받을때까지 반복해라
3. 로켓이 하늘로 올라가는 프로그램을 제작하라 (예제 프로그램은 화면을 지우는 기능을 사용하였지만 해당 기능을 사용하지 말고 구현해보도록하자)
참고로 로켓을 구현할때는 콘솔창의 크기가 고정되어있다고 생각하고 제작할것
4. q를 입력 받을 때까지 가위바위보게임을 실행하는 프로그램을 작성하라.
컴퓨터는 가위/바위/보 순서를 반복해서 내도록 한다.
'교육 노트 > C++ 기초강의' 카테고리의 다른 글
[C++ 때려 잡기] C++ 기초강의 2-1 함수의 선언과 정의 (0) | 2018.08.24 |
---|---|
[C++ 때려 잡기] C++ 기초강의 1-advanced 기본문법 (0) | 2018.08.24 |
[C++ 때려 잡기] C++ 기초강의 1-5 기본문법-분기문 (0) | 2018.08.23 |
[C++ 때려 잡기] C++ 기초강의 1-4 기본문법-연산자와 사용자 입력 (2) | 2018.08.23 |
[C++ 때려 잡기] C++ 기초강의 1-3 기본문법-배열기초 (0) | 2018.08.23 |