
#include <iostream>
int main()
{
std::cout<<"Hello World!"<<std::endl;
}
*include: 포함하다
std::cout << 출력할데이터;
std::cin >> 저장할변수;
C++ 프로그램은 가장 먼저 main() 함수를 찾고, 그곳에서부터 실행을 시작한다.
따라서 모든 C++ 프로그램은 반드시 하나의 main() 함수를 가지고 있어야 한다.
만약 main() 함수를 발견하지 못하면 C++ 컴파일러는 오류를 발생시킬 것이다.
변수의 이름 생성 규칙
C++에서는 변수의 이름을 비교적 자유롭게 지을 수 있다.
변수의 이름은 해당 변수에 저장될 데이터의 의미를 잘 나타내도록 짓는 것이 좋다.
- 변수의 이름은 영문자(대소문자), 숫자, 언더스코어(_)로만 구성된다.
- 변수의 이름은 숫자로 시작될 수 없다.
- 변수의 이름 사이에는 공백을 포함할 수 없다.
- 변수의 이름으로 C++에서 미리 정의된 키워드(keyword)는 사용할 수 없다.
- 변수 이름의 길이에는 제한이 없다.

위의 그림에서 하나의 메모리 공간에는 8개의 비트로 이루어진 1바이트의 데이터가 저장되어 있다.
해당 변수의 길이는 총 4개의 메모리 공간을 포함하므로, 해당 변수는 총 4바이트의 데이터를 저장하고 있는 것이다.




bool 형 타입
bool형은 참(true)이나 거짓(false) 중 한 가지 값만을 가질 수 있는 불리언 타입이다.
C++에서는 어떤 값도 bool형으로 묵시적 타입 변환이 가능하다.
이때 0인 값은 거짓(false)으로, 0이 아닌 값은 참(true)으로 자동 변환된다.
int i;
float sum = 0;
>
for (i = 0; i < 1000; i++)
{
sum += 0.1;
}
cout << "0.1을 1000번 더한 합계는 " << sum <<"입니다.";
0.1을 1000번 더한 합계는 99.999입니다.
위의 예제에서 0.1을 1000번 더한 합계는 원래 100이 되어야 하지만, 실제로는 99.999가 출력된다.
이처럼 컴퓨터에서 실수를 가지고 수행하는 모든 연산에는 언제나 작은 오차가 존재하게 된다.




위의 표에서 나온 순서대로 우선순위가 빠른 연산자가 가장 먼저 실행됩니다.
또한, 같은 우선순위를 가지는 연산자가 둘 이상 있을 때에는 결합 순서에 따라 실행 순서가 결정된다.





논리 연산자의 모든 동작의 결과를 보여주는 진리표(truth table)
- if 문
- if / else 문
- if / else if / else 문
- switch 문

if (조건식)
{
조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
if (조건식)
{
조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
else
{
조건식의 결과가 거짓일 때 실행하고자 하는 명령문;
}

if (조건식1)
{
조건식1의 결과가 참일 때 실행하고자 하는 명령문;
}
else if (조건식2)
{
조건식2의 결과가 참일 때 실행하고자 하는 명령문;
}
else
{
조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 명령문;
}
switch (조건 값)
{
case 값1:
조건 값이 값1일 때 실행하고자 하는 명령문;
break;
case 값1:
조건 값이 값2일 때 실행하고자 하는 명령문;
break;
...
default:
조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 명령문;
break;
}

while 문은 특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복 실행한다.

while 문은 루프에 진입하기 전에 먼저 조건식부터 검사한다.
하지만 do / while 문은 먼저 루프를 한 번 실행한 후에 조건식을 검사한다.
즉, do / while 문은 조건식의 결과와 상관없이 무조건 한 번은 루프를 실행한다.

for 문은 while 문과는 달리 자체적으로 초기식, 조건식, 증감식을 모두 포함하고 있는 반복문이다.
따라서 while 문보다는 좀 더 간결하게 반복문을 표현할 수 있다.
int arr[5] = {1, 3, 5, 7, 9};
for (int element : arr)
{
cout << element << " ";
}
1 3 5 7 9
이중 for문은 연산량이 쉽게 많아지기 때문에 잘 생각해서 써야함. 3중 포문은 거의 안쓴다.
int main()
{
int num;
int i;
for (num = 2; num < 10; num++)
{
std::cout << num << "단" << std::endl;
for (i = 1; i < 10; i++)
{
int result = num * i;
std::cout << num << "X" << i << "=" << result << std::endl;
}
}
}
continue 문은 루프 내에서 사용하여 해당 루프의 나머지 부분을 건너뛰고, 바로 다음 조건식의 판단으로 넘어가게 해준다. (Skip의 의미)
보통 반복문 내에서 특정 조건에 대한 예외 처리를 하고자 할 때 자주 사용된다.
break 문은 루프 내에서 사용하여 해당 반복문을 완전히 종료시킨 뒤, 반복문 바로 다음에 위치한 명령문을 실행한다. (원하는 값을 얻으면 정지)
즉, 루프 내에서 조건식의 판단 결과와 상관없이 반복문을 완전히 빠져나가고 싶을 때 사용한다.
goto 문은 프로그램의 흐름을 지정된 레이블(label)로 무조건 변경시키는 명령문이다.
goto 문은 다른 제어문과는 달리 아무런 조건 없이 프로그램의 흐름을 옮겨준다.
따라서 가장 손쉽게 사용할 수 있지만, 반면에 프로그램의 흐름을 매우 복잡하게 만들기도 한다. 이러한 단점 때문에 현재는 디버깅 이외에는 거의 사용되지 않는다.