2024. 5. 25. 17:41ㆍC++
제어구조에는 순차 구조, 선택 구조, 반복 구조가 있다.
순차 구조 : (문장 A) -> (문장 B) , 문장 A가 끝나면 문장 B가 실행되는 구조
선택 구조 : 조건식이 참이면 (문장 A) , 조건식이 거짓이면 (문장 B) , if-else문
반복 구조 : 조건식이 거짓이 될 때까지 (문장 A) 반복, for문, while문
관계 연산자
● 두 변수 안에 있는 값을 비교하는 연산자이다.
(x == y)
변수 x와 y안에 있는 값이 같다면 1, 즉 true를 반환한다.
변수 x와 y안에 있는 값이 다르다면 0, 즉 false를 반환한다.
이 코드의 경우 bool( true , false의 값이 들어가는)형식인 변수 b 안에는 0이 들어갈 것이다. (1 == 2는 다르기 때문)
std::boolalpha는 bool 형식의 변수안에 0이 들어있으면 false, 1이 들어있으면 true로 출력해주는 함수이다.
그래서 출력은 false가 출력된다.
논리 연산자
논리 연산자는 변수들 사이에 AND,OR,NOT계산을 하는 연산자이다.
AND,OR,NOT은 논리회로를 구현할 때 사용하기도 하지만, 코드에서 조건으로 넣을 때 사용하기도 한다.
if_else문
조건문인 if-else문은 조건에 따라 문장1과 문장2가 실행된다.
만약 조건식의 결과가 참일 경우 문장 1이 실행되고, 아닐경우 문장2가 실행된다.
간단한 예제를 통해 조건문을 알아보려한다.
코드를 짜서 문제를 해결하려고 하는 경우 문제를 쪼개서 단계적으로 해결해 나가면 쉽다.
1. x값, y값을 입력받는다.
2. x와 y의 값을 비교한다.
3. 비교 결과를 출력한다.
문제를 이렇게 3단계로 나누어보았다.
첫 번째로 int형 변수 x와y를 선언하여 x와 y안에 int형 값을 넣도록 한다.
두 번째로 x와 y의 값을 비교하고
세 번째로 비교 결과를 출력한다.
만약 x가 y보다 크다면 if문 안에 있는 "x가 y보다 큽니다"를 출력하는 문장이 실행된다.
반대로 y가 x보다 크다면 else if문 안에 있는 "y가 x보다 큽니다"를 출력하는 문장이 실행된다.
예외사항으로 만약 x와 y가 같다면 else문 안에 있는 "두 수는 같습니다,."를 출력하는 문장이 실행된다.
if-else문의 우선순서는 if - else if - else 순이다.
for문
for문의 경우 반복문으로 문장을 특정횟수만큼 반복시킬 때 사용한다.
Hello라는 문장을 100번 출력하고싶은데 cout << "Hello를 100번 입력하는 것도 힘든일이다. 그렇기에 반복문을 사용해서 손쉽게 Hello라는 문장을 100번 출력할 수 있다.
위에 for문을 간단하게 설명하면 초기식(i는 0부터 시작) ; 조건식(i<5가 될때까지 반복) ; 증감식(i는 1씩 증가) 이런 구조를 가지고 있다.
간단한 예제를 통해서 반복문을 알아보자
이 문제의 경우도 문제를 쪼개서 생각하면 쉽다.
1. 정수를 입력받는다.
2. 입력받은 정수부터 시작해서 1까지 모두 곱한다. ( 위의 경우 10x9x8x7x6x5x4x3x2x1 )
물론 위의 경우 10이라는 숫자는 작기 때문에 for문을 쓰지 않아도 조금의 시간만 투자한다면 해결할 수 있지만, 우리는 for문을 공부하기 때문에 for문을 사용해보자
for문은 초기식, 조건식, 증감식의 구조를 갖는다.
일단 초기식부터 생각을 해보면 i는 10부터 시작한다. (꼭 i가 아니여도 된다. i는 index의 약자로 구분하기 쉽게 하려고 약자를 사용하는거니까)
그 다음 조건식을 생각해보면 10부터 1까지 곱해야하기 때문에 곱하는 수인 i는 1보다 작아지면 안된다.
증감식을 생각해보면 10부터 1까지 1씩 작아져야한다.
num과 fact 라는 변수를 선언해서 정수를 입력받는다. (num은 곱하는 수이고, fact는 곱해지는 수이다.)
i는 입력받은 정수 num부터 시작해서 1까지 1씩줄어든다.
그 과정에서 num값이 줄어들 때 마다 그 값을 모두 곱해 fact에 저장한다.