C++
4. C언어 문법
리버윤
2024. 9. 24. 12:40
728x90
- 조건문
- C
int age = 18; if (age >= 18) { printf("성인입니다.\n"); } else if (age >= 13) { printf("청소년입니다.\n"); } else { printf("어린이입니다.\n"); }
C 언어에서는 조건식을 괄호로 감싸고, 실행할 코드 블록을 중괄호로 묶습니다 - C++
int score = 85; if (score >= 90) { cout << "A 등급" << endl; } else if (score >= 80) { cout << "B 등급" << endl; } else { cout << "C 등급" << endl; }
C++에서도 조건식을 괄호로 감싸고 코드 블록을 중괄호로 묶습니다. - JavaScript
let temperature = 25; if (temperature > 30) { console.log("더운 날씨입니다."); } else if (temperature > 20) { console.log("쾌적한 날씨입니다."); } else { console.log("쌀쌀한 날씨입니다."); }
JavaScript에서도 조건식을 괄호로 감싸고 코드 블록을 중괄호로 묶습니다. - Python
time = 14 if time < 12: print("오전입니다.") elif time < 18: print("오후입니다.") else: print("저녁입니다.")
Python에서는 괄호 대신 콜론(:)을 사용하고, 들여쓰기로 코드 블록을 구분합니다. - C#
int number = 7; if (number % 2 == 0) { Console.WriteLine("짝수입니다."); } else { Console.WriteLine("홀수입니다."); }
C#에서도 조건식을 괄호로 감싸고 코드 블록을 중괄호로 묶습니다. - Java
int grade = 3; if (grade == 1) { System.out.println("신입생입니다."); } else if (grade == 4) { System.out.println("졸업반입니다."); } else { System.out.println("재학생입니다."); }
Java에서도 조건식을 괄호로 감싸고 코드 블록을 중괄호로 묶습니다.
1) if 조건문
if(조건식)
문장 1;
다음 문장;
조건식이 참이면 문장 1 실행, 거짓이면 문장 1 실행하지 않고 건너 뜀.
2) if~else 조건문
if(조건식)
문장1;
else
문장2;
다음문장;
참일 경우 문장1 실행 후 다음문장, 거짓일 경우 문장2 실행 후 다음문장
3) 다중 if~else 조건문
if(조건식1)
문장1;
else if(조건식2)
문장2;
.
.
else
문장 n
4) switch~case 조건문
switch(조건식){ //조건식은 결과가 정수형(int, char, enum)인 수식만 가능
case 상수1 : //조건식의 결과가 상수1이면, if(조건식==상수1)
문장1;
break; //switch~case문 루프를 벗어남
case 상수2 : //조건식의 결과가 상수2이면, else if(조건식==상수2)
문장2;
break;
⋮
case 상수n:
문장n;
break;
default : //만족하는 경우가 없을 때, 다중 if~else의 마지막 else에 해당
문장;
break; //없어도 되지만 통일감을 위해 쓰는 것이 좋음
}//switch~case문 루프 끝
switch~case문은 다중 if~else문처럼 경우의 수가 많은 경우 자주 사용한다.
※ 결과가 정수형(int, char, enum)인 경우만 선택할 수 있다.
- switch case 계산기
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
char op; // 연산자 저장 변수
int num1, num2; // 피연산자 저장 변수
printf("덧셈과 뺄셈만 가능합니다\n");
printf("계산하려는 수식(예:10+20)을 입력하세요:");
scanf("%d%c%d", &num1, &op, &num2); //10+20
switch (op) {
case '+':
printf("덧셈 결과는 %d입니다.\n", num1 + num2);
break;
case '-':
printf("뺄셈 결과는 %d입니다.\n", num1 - num2);
break;
default:
printf("다시 입력하세요\n");
break;
}
return 0;
}
▷ C++ 스타일로 변경 / 곱셈, 나눗셈 추가
#include <iostream>
int main() {
char op; // 연산자 저장 변수
int num1, num2; // 피연산자 저장 변수
std::cout << "덧셈과 뺄셈만 가능합니다\n";
std::cout << "계산하려는 수식(예: 10 + 20)을 입력하세요: ";
std::cin >> num1 >> op >> num2; // 10 + 20
switch (op) {
case '+':
std::cout << "덧셈 결과는 " << (num1 + num2) << "입니다.\n";
break;
case '-':
std::cout << "뺄셈 결과는 " << (num1 - num2) << "입니다.\n";
break;
case '*':
std::cout << "곱셈 결과는 " << (num1 * num2) << "입니다. \n";
break;
case '/':
std::cout << "나눗셈 결과는 " << ((double)num1 / num2) << "입니다. \n"; //캐스트 연산자
break;
default:
std::cout << "다시 입력하세요\n";
break;
}
return 0;
}
- 반복문
1) for 반복문
for(제어 변수 초기식; 조건식; 증감식)
{
반복 실행될문장;
}
#include <iostream>
int main()
{
int i;
for (i=0; i<=99; i++) {
std::cout << i+1 << " : " << "Kang\n";
}
return 0;
}
( 일반적으로는 1부터가 아닌 0부터 시작함. 0부터 99까지 100번 출력하기 )
* 출력 폭 지정
#방법1
#include <iostream>
#include <iomanip> //setw() : 다음에 출력되는 것(i)은 괄호 한 숫자만큼의 크기로 출력하기
int main()
{
int i;
for (i=0; i<=99; i++) {
std::cout << std::setw(3) << i+1 << " : " << "Kang\n"; //i를 3칸에 출력하기
}
return 0;
}
#방법2
#include <iostream>
#include <iomanip> //setw() : 다음에 출력되는 것(i)은 괄호 한 숫자만큼의 크기로 출력하기
int main()
{
int i;
for (i=0; i<=99; i++) {
//std::cout << std::setw(3) << i+1 << " : " << "Kang\n"; //i를 3칸에 출력하기 단점은 #include <iomanip>를 꼭 써야한다는거
std::cout.width(3);
std::cout << i + 1 << " : Kang\n"; // #include <iomanip> 안써도 됨
}
return 0;
}
- switch case 계산기 (반복)
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
char op;
int num1, num2;
for (; ; ) //추가
{ //추가
printf("\n덧셈과 뺄셈만 가능합니다\n");
printf("끝내려면 0+0을 입력하세요\n"); //추가
printf("계산하려는 수식(예:10+20)을 입력하세요:");
scanf("%d%c%d", &num1, &op, &num2); //10+20
if (num1 == 0 && num2 == 0) break; //추가
switch (op) {
case '+':
printf("덧셈 결과는 %d입니다.\n", num1 + num2);
break;
case '-':
printf("뺄셈 결과는 %d입니다.\n", num1 - num2);
break;
default:
printf("다시 입력하세요\n");
break;
}// switch~case문 끝
} //추가, for문 끝
return 0;
}
▷ C++ 스타일로 변경 / 곱셈, 나눗셈 추가
#include <iostream>
#include <iomanip> // std::setprecision 사용을 위해 포함
int main() {
char op;
int num1, num2;
for (;;) { // 무한 루프
std::cout << "\n덧셈, 뺄셈, 곱셈, 나눗셈이 가능합니다\n";
std::cout << "끝내려면 0+0을 입력하세요\n";
std::cout << "계산하려는 수식(예: 10 + 20)을 입력하세요: ";
std::cin >> num1 >> op >> num2; // 10 + 20
if (num1 == 0 && num2 == 0) break; // 종료 조건
switch (op) {
case '+':
std::cout << "덧셈 결과는 " << (num1 + num2) << "입니다.\n";
break;
case '-':
std::cout << "뺄셈 결과는 " << (num1 - num2) << "입니다.\n";
break;
case '*':
std::cout << "곱셈 결과는 " << (num1 * num2) << "입니다.\n";
break;
case '/':
if (num2 != 0) {
std::cout << std::fixed << std::setprecision(2); // 소수점 2자리로 설정
std::cout << "나눗셈 결과는 " << static_cast<double>(num1) / num2 << "입니다.\n";
} else {
std::cout << "0으로 나눌 수 없습니다.\n";
}
break;
default:
std::cout << "다시 입력하세요\n";
break;
} // switch ~ case 문 끝
} // for 문 끝
return 0;
}
2) while 반복문
while(조건식){
반복 실행될 문장;
}
조건식이 참이면 루프 안에 반복실행될 문장을 실행하고 거짓이면 루프를 벗어남
3) do~while 반복문
do{
반복 실행될 문장;
}while(조건식);
미리 반복 횟수를 알 수 없고, 최소한 한번은 반복문장을 실행 할 경우에 많이 사용.
- for문과 while문을 어떨 때 써야할까?
1. 반복 횟수가 명확할 때: for문
- 정해진 횟수 반복: 반복할 횟수가 명확할 때 for문을 사용합니다. 예를 들어, 배열의 모든 요소를 처리하거나 특정 수만큼 반복할 때 적합합니다.
- 초기화, 조건, 증감이 한 곳에 모여 있음: for문은 초기화, 조건 검사, 증감식이 한 줄에 작성되므로 코드가 깔끔하고 가독성이 좋습니다.
2. 반복 횟수가 불확실할 때: while문
- 조건에 따라 반복: 반복할 횟수가 불확실하거나 조건에 따라 계속 반복해야 할 때 while문을 사용합니다. 예를 들어, 사용자 입력을 받을 때까지 반복할 때 유용합니다.
- 초기화와 증감이 자유로운 경우: 초기화와 증감이 반복문 외부에서 이루어질 수 있어 더 유연하게 사용할 수 있습니다.
▶ 무한루프
- 분기문
1) break문
: 반복문(for, while, do~while)이나 switch~case문에서 안쪽루프를 하나 벗어나는데 사용
728x90