과제 => 금일 내용 차분히 보고 다시 타이핑 하기.
====[ 2차원 반복문 ]==========================================================================
void main(){
// 구구단 만들기.
int numb = 2;
for (int i = 2; i < 10; i++){
cout << " " << endl;
cout << i << " 단------------- " << endl;
for (int j = 1; j < 10; j++){
cout << i << "X" << j << "=" << i *j << endl;
}
}
}
bool isStop = true;
int i = 4;
while (i <= 8)
{
cout << "구구단 : " << i << "단 출력" << endl;
int j = 1;
while (j<10)
{
cout << i << "X" << j << "=" << i *j << endl;
j++;
}
i += 2;
}
}
===[ 2차원 배열 ]==============================================================================
int arr [행][열];
줄 칸
#include // 콘솔 입출력
#include // 랜덤 모듈
#include // 타임 추출
#include
#include
using namespace std;
// swith문은 if 문과 같은 조건문임
// [문법]
// switch(정수식){
// case : 기준 정수값;
// 실행내용;
// break;
// case : 기준 정수값;
// 실행내용;
// break;
// ....
// default :
// 실행내용;
// break;
// * 모든 switch문은 if문으로 변경이 가능함.
// * 모든 if문은 switch문으로 변경 할 수 있지는 않음.
void MonsterGen(int type){
switch (type){
case 1:
case 2: // if ( type == 1 || type == 2){
cout << "인간형 몬스터 타입이 생성됩니다" << endl;
break;
case 3:
case 4:// else if ( type == 3 || type == 4){
cout << "언데드형 몬스터 타입이 생성됩니다" << endl;
break;
}
/*
switch (type)
{
case 1: // if ( type == 1){
cout << "멀록 몬스터가 생성 되었습니다" << endl;
break; // }
case 2: // if else ( type == 2){
cout << "오우거 몬스터가 생성 되었습니다" << endl;
break; // }
case 3: // if else ( type == 3){
cout << "언데드 몬스터가 생성 되었습니다" << endl;
break; // }
default ://모두가 거짓을때 else{
cout << "보스 몬스터가 생성 되었습니다" << endl;
break; // }
}
if (type == 1) cout << "멀록 몬스터가 생성 되었습니다" << endl;
else if (type == 2) cout << "오우거 몬스터가 생성 되었습니다" << endl;
else if (type == 3) cout << "언데드 몬스터가 생성 되었습니다" << endl;
else cout << "보스 몬스터가 생성 되었습니다" << endl;
*/
}
void main(){
// 배열의 사이즈는 변수를 정할 수 없는 상수로 선언 해야 한다.
const int WAVE_SIZE = 3; // 값이 변하지 않는 상수.
const int MONSTER_COUNT = 4; // 값이 변하지 않는 상수.
// 자료형 배열명 [행갯수][열갯수]
int monsterGenType[WAVE_SIZE][MONSTER_COUNT] = {
{ 1, 1, 2, 2 }, //1웨이브 몬스터 생성 타입
{ 2, 2, 3, 3 }, //2웨이브 몬스터 생성 타입
{ 3, 3, 3, 4 } //3웨이브 몬스터 생성 타입
};
// 1차원 반복문의 행 배열의 반복 담당
for (int i = 0; i < WAVE_SIZE; i++){
cout << i + 1 << "번째 웨이브가 시작 되었습니다..." << endl;
// 2차원 배열의 열 배열의 반복을 담당
for (int j = 0; j < MONSTER_COUNT; j++){
Sleep(2000);//2초 마다
MonsterGen(monsterGenType[i][j]); // 배열의 i번째행 j번째열의 값을 출력
//cout << monsterGenType[i][j] << "타입의 몬스터가 생성되었습니다." << endl;
}
for (int k = 0; k < 3; k++){
Sleep(500); cout << "경고!!";
}
cout << endl;
}
}
=============================================================================================
#include <iostream>
#include <stdlib.h>
#include <string>
#include <time.h>
#include <Windows.h>
using namespace std;
const int WAVE_SIZE = 3; // 값이 변하지 않는 상수.
const int MONSTER_COUNT = 4; // 값이 변하지 않는 상수.
void MonsterGen(int type){
switch (type){
case 1:
case 2: // if ( type == 1 || type == 2){
cout << "인간형 몬스터 타입이 생성됩니다" << endl;
break;
case 3:
case 4:// else if ( type == 3 || type == 4){
cout << "언데드형 몬스터 타입이 생성됩니다" << endl;
break;
}
/*
switch (type)
{
case 1: // if ( type == 1){
cout << "멀록 몬스터가 생성 되었습니다" << endl;
break; // }
case 2: // if else ( type == 2){
cout << "오우거 몬스터가 생성 되었습니다" << endl;
break; // }
case 3: // if else ( type == 3){
cout << "언데드 몬스터가 생성 되었습니다" << endl;
break; // }
default ://모두가 거짓을때 else{
cout << "보스 몬스터가 생성 되었습니다" << endl;
break; // }
}
if (type == 1) cout << "멀록 몬스터가 생성 되었습니다" << endl;
else if (type == 2) cout << "오우거 몬스터가 생성 되었습니다" << endl;
else if (type == 3) cout << "언데드 몬스터가 생성 되었습니다" << endl;
else cout << "보스 몬스터가 생성 되었습니다" << endl;
*/
}
// 2차원 배열 포인터를 이용해서 main() 함수의 monsterGenType배열을 참조함
void waveStart(int(*pmonsterGenType)[4]){
//cout << "pmonsterGenType[1][2] => " << pmonsterGenType[1][2] << endl;
// 1차원 반복문의 행 배열의 반복 담당
for (int i = 0; i < WAVE_SIZE; i++){
cout << i + 1 << "번째 웨이브가 시작 되었습니다..." << endl;
// 2차원 배열의 열 배열의 반복을 담당
for (int j = 0; j < MONSTER_COUNT; j++){
Sleep(2000);//2초 마다
MonsterGen(pmonsterGenType[i][j]); // 배열의 i번째행 j번째열의 값을 출력
//MonsterGen(*(*(pmonsterGenType + i)+j)); // 배열의 i번째행 j번째열의 값을 출력
//cout << monsterGenType[i][j] << "타입의 몬스터가 생성되었습니다." << endl;
}
for (int k = 0; k < 3; k++){
Sleep(500); cout << "경고!!";
}
cout << endl;
}
}
void main(){
// 배열의 사이즈는 변수를 정할 수 없는 상수로 선언 해야 한다.
// 자료형 배열명 [행갯수][열갯수]
int monsterGenType[WAVE_SIZE][MONSTER_COUNT] = {
{ 1, 1, 2, 2 }, //1웨이브 몬스터 생성 타입
{ 2, 2, 3, 3 }, //2웨이브 몬스터 생성 타입
{ 3, 3, 3, 4 } //3웨이브 몬스터 생성 타입
};
//2차원 배열의 포인터 상수를 넘김
waveStart(monsterGenType);
}
===[ 2차원 포인터 ]===========================================================================
2차원 배열의 메모리 주소를 접근하기 위해 사용한다.
#include <iostream>
#include <stdlib.h>
#include <string>
#include <time.h>
#include <Windows.h>
using
namespace
std;
void
main() {
int
value = 10;
int
* pValue = &value;
int
** ppValue = &pValue;
int
*** pppValue = &ppValue;
cout <<
"주소값들=============="
<< endl;
cout <<
"&value : "
<< &value << endl;
cout <<
"pValue : "
<< pValue << endl;
cout <<
"ppValue : "
<< ppValue << endl;
cout <<
"&pValue : "
<< &pValue << endl;
cout <<
"데이타값들=============="
<< endl;
cout <<
"value : "
<< value << endl;
cout <<
"*(&value) : "
<< *(&value) << endl;
cout <<
"*pValue : "
<< *pValue << endl;
cout <<
"*ppValue : "
<< *ppValue << endl;
cout <<
"**ppValue : "
<< **ppValue << endl;
}
============================================================================================
2차원 배열 생성 후 각 값 출력
void printMon(int type){
switch (type)
{
case 1: cout << "num1 고블린" << endl;
break;
case 2: cout << "num2 오우거" << endl;
break;
case 3: cout << "num3 고울렘" << endl;
break;
default:cout << "num4 만다라" << endl;
break;
}
}
void main(){
int Monsters[3][4] = {
{1,1,2,2},
{3,3,4,4},
{1,2,3,4}
};
for (int i = 0; i < 3; i++){
for (int j = 0; j < 4; j++){
printMon(Monsters[i][j]);
Sleep(1000);
}
}
}
댓글
댓글 쓰기