2013년 8월 9일 금요일

C# 명령문, 반복문

이번 강좌에서는 제어문 또는 명령문에 대해 보도록 합니다. 기존 언어와 매우 유사하니 간단히 살펴 보도록 하겠습니다.


  오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  



먼제 선택을 위한 if, switch 문에 대해 보도록 하겠습니다.

1. if문

if statement : 어떤 조건의 참, 거짓을 판단하여 실행을 제어하는 구조에 사용되는 statement 입니다.

condition 부분은 결과값은 반드시 true또는 false가 되어야 합니다.(No implicit conversion from int to bool )

다른 언어들의 경우: 0 이나 -1을 false로 나머지를 true로 암시적 형 변환

int x;

if(x) …//must be if (x!=0) in c#
if(x=0) …//must be if (x==0) in c#

[예]

enum Suit { Clubs , Hearts , Diamonds , Spades };

Suit trumps = Suit.Hearts;
if ( trumps == Suit.Clubs )
color = "Black";
else if ( trumps == Suit.Hearts )
color = "Red";
else if ( trumps == Suit.Diamonds )
color = "Red";
else
color ="Black";



2. switch 문

switch문의 변수값과 일치하는 case로 분기 합니다. (진입점)

변수값 일치하는 case가 없을 경우 default로 분기 합니다.

break문을 만나면 switch문 외부로 분가 합니다. (종단점)

[예]

switch(trumps) {
case Suit.Clubs:
case Suit.Spades:
color = "Black" ; break;
case Suit.Hearts:
case Suit.Diamonds:
color = "Red" ; break;
default:
color = "ERROR"; break;

}


다음은 반복문에 대해 보도록 합니다. (while, do~while, for, foreach)

1. while문

형식:

while (condition)
{
statements;
}

조건이 참인 동안에 statement를 실행 합니다.

[예]

int Index = 0;

while (Index < 10 ) {
Console.WriteLine(Index);
Index++;
}


2.do~while문

형식 :

do{
statements;
} while (condition);


while문과의 차이는 조건에 맞지 않더라도 statement를 한번은 수행하는 구조 입니다. 그러나 while문에서는 조건에 맞지 않으면 statement를 한번도 수행 하지 않을수도 있습니다.

[예]

int Index = 0;

do {
Console.WriteLine(Index);
Index++;
}while(Index < 10 )




3. for문

형식:

for(초기치; 조건; 업데이트 실행){
statements;
}

일반적인 for문과 같으므로 별다른 설명은 하지 않겠습니다.

[예]

for ( int x=0; x < 10 ; x++) { //x는 0부터 10보다 작을때 까지 x를 1씩 증가하면서 x의 값을 찍으니 0부터 9까지 출력되겠죠...
Console.WriteLine(x);
}

아래와 같은것도 되는것 아시죠^^;

for ( int x=0 , y = 0 ; x < 10 , y< 100 ; x++ , y++)



4. foreach문

형식:

foreach(item in 배열 또는 컬렉션){
statements;
}
배열: 여러 개의 데이터를 하나의 변수 또는 객체에 담아두는 것
컬렉션: 자유로운 형태로 여러 개의 데이터를 담아둘 수 있습니다. ArrayList, HashTable, Icollection 등이 있습니다.

실행순서를 설명 드리면 배열이나 컬렉션에서 하나의 항목을 읽은 후 statement를 수행하고 다음 foreach로 가서 다음 읽을것이 있으면 다시 읽고 statement를 실행하는 순서로 동작 합니다. 만약 다음 읽을것이 없다면 루프를 빠져 나옵니다.

[예]

ArrayList numbers = new ArrayList();

for ( int I= 0 ; I < 10 ; I++) {
Numbers.Add(I); //0부터 9까지의 수를 ArrayList라는 컬렉션에 담는다. C#에서 모든 데이터형은 객체 임
}

foreach(int number in numbers ) { //컬렉션에 객체가 있는 동안에 반복해서 그 값을 출력함, foreach를 사용하면 종료 조건을 기술하지 않아도 되므로 상당히 효율적
Console.WriteLine(number);
}




이번에는 제어를 조절할 수 있는 break,continue에 대해 알아 보겠습니다.

break : 반복문 내의 임의의 지점에서 루프를 빠져나가야 할 때 break문을 사용 합니다. 싸고 있는 루프중 가장 가가운 루프를 빠져 나갑니다.
continue : 루프의 남은 부분을 skip하고 루프의 처음으로 제어를 옮깁니다.

댓글 없음:

댓글 쓰기