-switch case 

switch 변수

{

case 1

}

--------

#include <iostream>

#include <string>

 

using namespace std;

int main()

{

int a;

cin >> a;

switch (a)

{

case 1:

cout << "hello";

case 2:

cout << "hi";

break;

default:

cout << "open";

 

}

return 0;

}

case 1 실행시 hello hi 가 둘다 나온다.

그이유는 break case1을 끝내지 않았기 때문이다.

이러한 특성으로

case1

case2

같은 것으로 한번에 두 개의 입구를 지정할 수 있다.

 

-ternary opeartor

:3항연산자이다.

:if else의 문장을 간단화(shorthand)시킨다.

#include "iostream"

using namespace std;

 

int main()

{

int a, b, max;

a = 2;

b = 3;

//a > b 가 참이면 a , 거짓이면 b 로 출력한후 max 에 저장한다.

//지금 이식은 a>b 가 참이 아니므로 b값이 max에 들어간다.

max = a > b ? a : b;

cout << max;

return 0;

}

 

 

-inline function

형식적으로는 함수이나 호출될 때 코드가 복사됨.

보통 프로그램이 시작되고 함수를 만나게 되면 그함수가 있는곳으로 가서 읽은 후에 다음 문장들을 실행하게 된다.

하지만 inline함수는 바로 실행된다.

문장중에 실행되는 if else,ternary operator역시 inline 함수이다.

만약 프로그램이 굉장히 큰 경우 적당한 크기의 함수들을 함수형태로 만들어두고 필요할때마다 사용하면 프로그램에 유용하다. 하지만 한줄짜리 코드는 그냥 inline으로 하면 굉장히 연산이 빨라지고 좋다.

(즉 함수를 클래스 안에서 정의할 경우 inline 처리된다)

 

-loop

loop의 종류는 for, while, dowhile이 있다.

for은 초기화 , 조건, 변수설정 이 한줄에 있다.

while은 참인 조건은 계속적으로 실행한다.

do while은 조건식을 body실행후 보기 때문에 적어도 한번의 실행을 한다.

 

#include "iostream"

using namespace std;

 

int main()

{

int a,b,c,i;

a = 0;

b = 0;

i = 0;

//a 49일때 문장이 실행되므로 a=50 이 된다.

do

{

a++;

} while (a < 50);//while 다음에 쉼표를 반드시 붙여주도록한다.

cout << a<<endl;

//b 49일때 문장이 실행되므로 b=50 이된다.

while (b < 50)

{

b++;

}

cout << b<<endl;

//c=0부터 i<50이기때문에 i=1을 만들고 c=1을 함

//...c=49부터 i<50이기때문에 i=50을 만들고 c=50을한다.

//그리고나서 조건을 보면 c=50이기에 탈출한다.

for (c = 0; c<50; c++)

{

i++;

}

cout << i;

 

 

return 0;

}

for문에서는

for(초기화;조건;연산)

{

body;

}

의 형식인데. 순서는 초기화-조건-body-연산 순이다.

ex)break  if 문을 제외한 for  while loop 한 개 탈출을 보이기.

#include "iostream"

using namespace std;

 

int main()

{

int a,b;

//a,b=0 은 불가능하다.

a = 0;

b = 0;

//break하고싶다!

while (1)

{

b++;

if (b == 50)

break;

}

cout << b;

 

for (a = 0; a < 50; a++)

{

if (a == 25)

break;

}

cout << a;

return 0;

}

 

#include <iostream>

using namespace std;

 

 

int main()

{

int a, b, c;

a = 0;

while (a < 50)

{

if (a < 10)

{

cout << a;

a++;

}

//밑에것은 실행이안된다.

//이를통해 if else는 단한개만 선택하여 사용되며

//윗문장부터 실행하며 실행후 break가 있음을 알수 있다.

else if (a == 5)

cout << "a 5이다.";

}

return 0;

}

 

#include <iostream>

using namespace std;

 

 

int main()

{

int a, b, c;

a = 0;

while (a < 10)

{

cout << "1"<<a << endl;

a++;

if (a == 5)

{

cout << "haaa";

//continue로 인하여 해당 루프에서 밑부분만 빠져나온다.

continue;

}

cout <<"2"<<a << endl;

a++;

 

}

return 0;

}

 

 

 

comma operator

int main()

{

int a,b;

//콤마연산자는 순서를 앞부터 하면서 한문장에 여러 기능을 수행 할 수 있도록 사용한다.

//a=2를 수행하고 b=3을 수행한다. 그리고 a=3을 수행한다.

a = (a = 2, b = a + 1);

//cout << a 를 수행하고 cout << b를 수행한다.

cout << a,cout << b;

 

 

 

return 0;

}

 

int main()

{

int a,b,c;

a = 10;

b = 10;

c = 10;

//이런식으로 if 의 조건은 한번에 두개 사용가능

if (a == b && c == b)

cout << a<<endl;

b = 0;

//for문의 조건에서도 조건연산자의 사용이가능하다.

for (a = 0; a < 5 && b < 3; a++)

{

cout << "himan"<<endl;

b++;

}

 

 

return 0;

}

예제문제

 

#include <iostream>

using namespace std;

 

 

int main()

{

int pWaiting[7] = { 22,21,24,20,18,25,23 };

int nMax, nPosMax,i;

nMax = 22;

nPosMax = 0;

for (i = 1; i < 6; i++)

{

if (pWaiting[i] % 2 == 0)

{

nPosMax = pWaiting[i] > nMax ? i : nPosMax;

nMax = nMax > pWaiting[i] ? nMax : pWaiting[i];

}

else if (pWaiting[i] == 21)

{

break;

}

else

continue;

}

 

cout << nPosMax << endl << nMax;

 

return 0;

}

+ Recent posts