\(\texttt{cin}\) Object \(\texttt{cin}\) 객체 ("C-In" 혹은 "Console-Input" 이라 읽는다.) - C++에서 제공하는 표준 입력 객체이다. - 에 정의되어 있는 istream 클래스에 속해있는 객체이다. - \(\texttt{cin}\)이 조건 검사식에 위치하게되면 Method(메서드)의 특성을 띄게 되는데, 입력이 성공할 경우 \(\texttt{cin}\) 구문은 \(\texttt{true}\)를, 입력에 실패할 경우 \(\texttt{false}\)를 리턴하게 된다. (\(\texttt{cin}\) 객체의 리턴형은 \(\texttt{cin}\) 객체 그 자체이지만, 조건 검사식에 위치한 \(\texttt{cin}\) 구문은 리턴형을 Boolean으로 변..
do while Loop do while 루프 - for 루프, while 루프와 달리 루프 바디를 먼저 실행시키고 조건을 나중에 검사하는 Exit-Condition Loop(탈출 조건 루프)이다. (따라서, do while 루프는 조건을 평가하기 전에 루프 바디를 적어도 한 번은 실행한다.) - 사용자로부터 입력을 받고 작업을 수행하는 경우에 do while 루프가 적합하다. do { Loop Body } while (testExpr); // 세미콜론에 유의!
Type Aliases 데이터형 대용 이름 - 복잡한 데이터형을 대용 이름으로 처리하여 코드 가독성을 제고한다. - 포인터 데이터형 또한 대체가능하다. Way I. Preprocessor "#define" 이용하기 #define BYTE char // 소스코드 상에서 컴파일시에 BYTE를 char로 대체하게 한다. - 소스코드상에서 "BYTE"라는 단어가 나타날 때마다 "char"로 대체한다. - BYTE가 char의 대용이름이 된다. Way II. Keyword \(\texttt{typedef}\) 이용하기 typedef char BYTE; // BYTE를 char의 대용이름으로 한다. // 일반형 typedef typeName aliasName; - \(\texttt{typedef}\) 키워드를 응용..
Time Delay Loop 시간 지연 루프 - 설정한 시간만큼 프로그램 실행시간을 의도적으로 지연시키는 동작을 하는 루프이다. - 중요한 메세지를 사용자가 읽을 시간을 주기 위해서 사용할 수 있다. - 기본적인 원리는 시스템 시계가 클럭 수를 카운트하도록 만드는 방식이다. - ANSI C와 C++ Library에서 제공하는 clock() 함수와 clock()과 clock_t 타입을 포함하고 있는 헤더파일을 포함시켜야 한다. clock() - 프로그램이 실행된 순간부터 이 함수가 호출된 순간까지 경과된 시간을 리턴한다. - 리턴 값은 Second 단위가 아니다. - 반환하는 타입이 시스템에 따라 다르다. (long, unsigned long 등) clock_t - clock()가 리턴하는 타입의 Alia..
while Loop while 루프 - 각 루프 주기에 진입할 때마다 조건 검사 표현식이 평가된다는 점에서 Entry-Condition Loop(진입 조건 루프)에 해당된다. (for 루프와 동일) (따라서, 조건 검사 표현식이의 값이 처음부터 False 이면 루프 바디는 한 번도 실행되지 않게된다.) Usage while (testExpression) { Loop Body } - 프로그램은 먼저 괄호 안의 \(testExpression\)(조건 검사 표현식)을 평가한 후, 표현식이 True로 평가되면 루프 바디의 구문들을 실행한다. - 루프 바디의 실행이 끝나면 조건 검사 표현식으로 돌아와서 갱신된 값으로 표현식을 다시 평가한다. - 이와 같은 루프 주기는 조건 검사 표현식의 값이 False가 될 때까..
Relational Expression 관계 표현식 - 값을 서로 비교하는 Relational Operator(관계 연산자)를 통한 연산이 포함되는 표현식이다. - 관계 연산의 결과값은 오직 True, False 두 가지 밖에 없다. (False = 0, True = 0 이외의 값) - C++에서는 6개의 관계 연산자들을 제공하며, 오직 수를 비교하는 데에만 사용할 수 있다. - 문자와 string 클래스에도 관계 연산을 수행할 수 있다. (문자들은 ASCII Code에 의해 자연수에 대응되기 때문이며, string 클래스에 연산자 오버로딩이 되어있기 때문이다.) - C 스타일 문자열에는 관계 연산자들을 사용할 수 없다. (C 스타일 문자열은 주소로 처리되기 때문이다. 이에 대한 대책으로 헤더파일의 st..
Comma Operator 콤마 연산자 - 콤마 연산자는 두 개의 표현식을 하나로 결합하는 연산자이다. - 문법 규칙 상, 하나의 표현식만을 허용하는 자리에 콤마 연산자를 사용하면 두 개의 표현식을 동시에 표현할 수 있다. - 콤마 연산자는 연산자 중 우선순위가 가장 낮은 연산자이다. - 콤마 연산자는 첫 번째 표현식을 먼저 평가한 후, 그 다음 표현식을 평가한다. (이러한 면에서 콤마 연산자는 Sequence Point 역할을 수행한다.) - 또한, 두 번째 표현식을 콤마 표현식 전체의 값으로 만들면서 표현식의 원칙에도 일맥상통한다. i = 20, j = 2 * i; // 여기서 콤마 연산자가 시퀸스 포인트 역할을 함으로써 // i에 20이 대입된채로, j에 대한 연산이 수행되게 된다. - 콤마가 반드..
Combination Assignment Operator 조합 대입 연산자 - 산술 연산자와 대입 연산자가 합쳐진 연산자이다. - C++의 모든 산술 연산자 5가지(사칙연산, 나머지 연산)는 그에 대응되는 조합 대입 연산자를 하나씩 가진다. - 산술 연산을 수행한 후, 왼쪽에 있는 변수에 대입연산을 진행한다. \(Operator\) \(Effect\) \(+=\) 덧셈 연산 후, 결과를 왼쪽 변수에 대입한다. \(-=\) 뺄셈 연산 후, 결과를 왼쪽 변수에 대입한다. \(*=\) 곱셈 연산 후, 결과를 왼쪽 변수에 대입한다. \(/=\) 나눗셈 연산 후, 결과를 왼쪽 변수에 대입한다. \(\%=\) 나머지 연산 후, 결과를 왼쪽 변수에 대입한다. ex) \(L\ += R \iff L = L + R\)