C#에서 수행해야 할 논리적 코드를 표현하는 방법에는 연산자 이외에도 식과 문을 제공하고 있습니다. 수행해야 할 코드에서 값이나 변수, 속성, 리터럴, 연산자, 함수 호출 등의 코드 조각을 식(Expressions)이라 합니다. 그리고 수행해야 할 코드를 세미콜론 단위로 구분하여 표현하는데 이를 문(Statements)이라 부릅니다. 결국, 문을 구성하는 것이 식이라 할 수 있습니다.
식에는 단순히 변수이름을 사용하는 것과 리터럴 상수를 사용하는 것, 메서드 이름과 인자를 사용하는 것이 있습니다.
static void Main(string[] args) { string s = string.Empty; s = "Hello"; //리터럴 상수 사용 string s2 = s; //변수 이름을 사용 Console.WriteLine(s2); //호출문 } |
문에 종류에는 선언문과 연산 구문과 같이 단순구문과 조건(선택)문, 반복문, 점프(분기)문, 예외 처리문 등과 같이 블록을 구성하여 블럭 내에 수행해야 하는 절차를 표현하는 문이 있습니다. 그리고 C#의 조건문과 반복문은 C언어와 C++과 다르게 조건에 사용하는 식의 연산 결과가 반드시 bool형이어야만 합니다.
[그림 9] 조건식에 bool 형식이 아닌 형식을 사용했을 때의 오류 화면
static void Main(string[] args) { int i = 0; //선언문 Console.WriteLine("수를 입력하세요.."); //호출식(문) try //예외 처리문의 try 블록 { i = int.Parse(Console.ReadLine()); if ((i % 2) == 0) //조건문 { Console.WriteLine("입력한 수 {0}는 짝수입니다..", i); } else { Console.WriteLine("입력한 수 {0}는 홀수입니다. ", i); }
int sum = 0; for (int index = 1; index < i; index++) //반복문 { sum += index; } Console.WriteLine("1~{0}까지의 합은 {1}입니다.", 1, i, sum); } catch (Exception e) //예외 처리문의 catch 블록 { Console.WriteLine("예외가 발생하였습니다. {0}", e.Message); } } |
▶if - else 문
조건식으로 bool 형식이 올 수 있으며 조건식의 결과에 따라 수행 여부를 결정합니다. 조건이 참일 때 수행하는 구문만 정의할 때는 else 부분을 생략할 수 있습니다.
class Program { static void Main(string[] args) { Console.WriteLine("이름을 입력하세요."); string name = Console.ReadLine();
if (name != string.Empty) //이름을 입력하였을 때 { Console.WriteLine("{0}의 주소를 입력하세요. ",name); string addr = Console.ReadLine();
if (addr != string.Empty)//주소를 입력하였을 때 { Console.WriteLine("{0}의 주소는 {1}입니다. ", name, addr); } } else //이름을 입력하지 않았을 때 { Console.WriteLine("이름을 입력하지 않았습니다."); }
} } |
▶ switch 문
여러 가지 경우의 코드에서 원하는 코드만 수행할 수 있습니다. 각 경우에 수행할 코드는 case문을 사용하며 일치하는 case문부터 시작합니다. 그리고 break문을 만나면 switch문을 빠져나갑니다. case문으로 표현하지 않은 때에 수행할 코드는 default문을 사용합니다.
그리고 C언어와 C++언어와 다르게 문자열을 사용할 수 있어 개발에 편의성을 높였습니다. 또한, C언어와 C++과 다르게 case문에 수행할 코드가 있을 때에는 break문을 명시해야 합니다.
static void Main(string[] args) { string name = string.Empty; Console.WriteLine("이름을 입력하세요.."); name = Console.ReadLine();
switch (name) { case "홍길동": Console.WriteLine("휘리릭~"); break; case "강감찬": case "을지문덕 ": Console.WriteLine("이랴~"); break; default: Console.WriteLine("음냐뤼~"); break; } } |
▶ while , do while 문
while문과 do while문은 조건식이 참일 동안 반복해서 수행합니다. if문과 마찬가지로 조건식은 bool 형식이 와야 합니다. 그리고 반드시 한 번은 수행해야 한다면 do while문을 사용할 수 있습니다.
반복문을 수행 도중에 빠져나가려고 할 때에는 break문을 사용합니다. 또한, 반복문의 수행 도중에 반복문 시작으로 가고자 할 때는 continue문을 사용합니다. for문을 이용하여 반복문을 표현할 때도 break와 continue에 대한 사항은 같습니다.
static void Main(string[] args) { int i = 0; while (i < 10) { Console.WriteLine("{0}", i); i++; }
do { i++; Console.WriteLine("do-while:{0}", i); } while (i < 10); } |
▶ for 문
while문 처럼 조건식이 참일 동안 반복해서 수행합니다. 반복문을 수행하기 전에 초기화와 반복문에 조건을 변화시키는 부분이 있어서 초기 구문을 생략하는 개발자의 실수가 줄어듭니다.
static void Main(string[] args) { for(int i = 0; i<10; i++) { Console.WriteLine("for:{0}", i); } } |
▶ foreach문
배열과 같은 컬렉션에 있는 각 요소에 대해 같은 작업을 수행할 때 사용됩니다. 사용자가 정의한 형식을 foreach문에서 사용하려면 GetEnumerator, MoveNext,Reset,Current 멤버가 있어야 합니다. 이 부분은 8장 인터페이스와 컬렉션에서 다루겠습니다.
static void Main(string[] args) { int[] arr = new int[]{2,3,4,5,6}; foreach (int i in arr) { Console.WriteLine(i.ToString()); } } |
'언어 자료구조 알고리즘 > Escort C#' 카테고리의 다른 글
[C#] 5.1 캡슐화 대상(멤버) - 멤버 필드 (0) | 2016.05.02 |
---|---|
[C#] 5. 캡슐화 (0) | 2016.05.02 |
[C#] 4. 값(value) 형식 (0) | 2016.04.01 |
[C#] 3.4 string (0) | 2016.04.01 |
[C#] 3.3 배열 (0) | 2016.04.01 |
[C#] 3.2 Boxing 과 UnBoxing (0) | 2016.04.01 |
[C#] 3. 형식 개요, 3.1 object (0) | 2016.04.01 |
[C#] 2.2 해야 할 일에 관한 문법 사항, 2.2.1 연산자 (0) | 2016.04.01 |
[C#] 2. C# 구성 요소, 2.1 데이터에 관한 문법 사항 (1) | 2016.04.01 |
[C#] 1. C# 소개 (0) | 2016.04.01 |