======C++ 스터디 #4: Phase 1 복습 및 심화내용======
| 시간 | 2021년 5월 6일 목요일 20:30 ~ 22:10 |
| 장소 | Google Meet |
| 참가자 | - |
{{youtube>nC-UocXn6-0?medium}}
출처: https://boycoding.tistory.com/186?category=1009239 [소년코딩]
=====1. Phase 1 복습=====
=====2. switch문=====
switch 표현식이 값을 평가하고, 각 case 레이블의 값과 같은지 테스트합니다. 레이블의 값과 같으면 레이블 뒤의 명령문을 실행합니다. 일치하는 레이블이 없으면 default 뒤의 명령문을 실행합니다.
====2.1. switch문 예시====
#include
using namespace std;
int main()
{
int num;
cin >> num;
switch(num)
{
case 1:
cout << "One";
break;
case 2:
cout << "Two";
break;
default:
cout << "Unknown";
break;
}
return 0;
}
\\
=====3. 예제=====
====3.1. switch문 예제====
\\
**출력**
표준 입력으로 문자 'f', 'c', 'p' 중 하나가 입력됩니다. 입력된 문자가 'f'라면 "환타", 'c'라면 "콜라", 'p'라면 "포카리스웨트"를 출력하고, 아무 문자에도 해당되지 않으면 "판매하지 않는 메뉴"를 출력하는 프로그램을 만드세요.
\\
**출력 예시**
f
환타
\\
**코드**
#include
using namespace std;
int main()
{
char menu;
cin >> menu;
switch (menu)
{
case 'f':
cout << "환타";
break;
case 'c':
cout << "콜라";
break;
case 'p':
cout << "포카리스웨트";
break;
default:
cout << "판매하지 않는 메뉴";
break;
}
return 0;
}
\\
====3.2. 별 기호(*)로 가로 5 세로 4 직사각형 그리기====
\\
**출력 예시**
*****
*****
*****
*****
\\
**코드**
#include
using namespace std;
int main()
{
for (int i = 1; i <= 4; i++)
{
for (int j = 1; j <= 5; j++)
{
cout << "*";
}
cout << endl;
}
return 0;
}
\\
====3.3. 별 기호(*)로 5층 계단 그리기 ====
\\
**출력 예시**
*
**
***
****
*****
\\
**코드**
#include
using namespace std;
int main()
{
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= i; j++)
{
cout << "*";
}
cout << endl;
}
return 0;
}
\\
====3.4. 별 기호(*)로 5층 역삼각형 그리기====
\\
**출력 예시**
*****
****
***
**
*
\\
**코드**
#include
using namespace std;
int main()
{
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 5; j++)
{
if (j < i)
cout << " ";
else
cout << "*";
}
cout << endl;
}
return 0;
}
\\
====3.5. 별 기호(*)로 5층 산 모양 그리기====
\\
**출력 예시**
*
***
*****
*******
*********
\\
**코드**
#include
using namespace std;
int main()
{
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j > 5 - i && j < 5 + i)
cout << "*";
else
cout << " ";
}
cout << endl;
}
\\
====3.6. FizzBuzz====
\\
**출력**
1부터 100까지 자연수를 차례대로 출력하는데, 3의 배수면 숫자 대신 ‘Fizz’를 출력, 5의 배수면 ‘Buzz’를 출력, 둘 다 해당되면 ‘FizzBuzz’를 출력하도록 하는 프로그램을 작성하세요.
\\
**출력 예시**
1
2
Fizz
4
.
.
.
98
Fizz
Buzz
\\
**코드**
#include
using namespace std;
int main()
{
for (int i = 1; i <= 100; i++)
{
if (i % 3 == 0 && i % 5 == 0)
cout << "FizzBuzz" << endl;
else if (i % 3 == 0)
cout << "Fizz" << endl;
else if (i % 5 == 0)
cout << "Buzz" << endl;
else
cout << i << endl;
}
return 0;
}
아래와 같이 ''else''와 ''&&'' 없이도 구현이 가능합니다.
#include
using namespace std;
int main(){
for (int i = 1; i <= 100; i++) {
bool nothing = true;
if (i % 3 == 0){ //3의배수
cout << "Fizz";
nothing = false;
}
if (i % 5 == 0){ //5의배수
cout << "Buzz";
nothing = false;
}
if(nothing){ //3의배수도, 5의배수도 아닌
cout << i;
}
cout << endl;
}
return 0;
}
\\