... | ... | @@ -71,5 +71,46 @@ char slash = '\\' //역슬래시는 두번입력해야 역슬래시로 표현. |
|
|
int n = Math.Max(0, 5); //프로그램을 실행할 때 n값이 결정
|
|
|
|
|
|
const int maxN = Math.Max(0, 5); //maxN은 상수이므로 컴파일할 때 값이 결정되어야 하는데
|
|
|
//Max 메소드는 런타임에 실행되므로 오류 발생
|
|
|
``` |
|
|
//Max 메소드는 런타임에 실행되므로 컴파일러가 어떤 값을 넣을지 몰라서 오류 발생
|
|
|
|
|
|
const int n = 5 * 100 / 2 //이런 단순 수식은 컴파일러가 계산해서 대입 가능 (상수식 이라고 함)
|
|
|
```
|
|
|
|
|
|
#### 배열
|
|
|
배열도 참조 형식이기 때문에 배열의 값을 힙에 할당한다.
|
|
|
|
|
|
```c#
|
|
|
int [] products = new int[5]; //이런 식으로 선언.
|
|
|
int [] products = new int[5] {1,2,3,4,5}; //배열 개수 지정 초기화.
|
|
|
int [] products = new int[] {1,2,3,4,5}; //배열 개수 미지정.(컴파일러가 알아서 계산해서 크기 5로 지정)
|
|
|
```
|
|
|
string도 char의 배열이다.
|
|
|
|
|
|
#### 관계 연산자, 논리 연산자
|
|
|
* 배타적 논리합(XOR) 연산자 : ^
|
|
|
* 단락 계산, 단축 평가 : 한 조건에 의해서 다른 조건의 결과값에 상관 없이 무조건 참, 거짓이 나오기 때문에 다른 조건은 실행도 되지 않는 것. (|| 일 때 한 쪽이 참, &&일 떄 한 쪽이 거짓)
|
|
|
|
|
|
```c#
|
|
|
int n = 50;
|
|
|
int x = 100;
|
|
|
|
|
|
if (x > 10 || n++ > 10) // 단락 계산이 발생하기 때문에 n++부분이 실행되지 않아서 n값은 그대로 50에서 머무른다.
|
|
|
{
|
|
|
//생략
|
|
|
}
|
|
|
//증감 연산자는 논리 연산자의 피연산자에 해당하는 식에 쓰는 것 보다 따로 분리해서 쓰는 것이 바람직하다.
|
|
|
```
|
|
|
#### 조건문
|
|
|
* switch문에서 C/C++와 달리 case문에 break를 포함시키는게 강제사항이라서 break가 없으면 오류가 발생한다. case 문에 실행코드 없으면 생략 가능
|
|
|
|
|
|
#### 반복문
|
|
|
* foreach 문 : foreach (표현식요소_자료형 변수명 in 표현식) 구문;
|
|
|
|
|
|
```c#
|
|
|
int [] arr = new int[] {1,2,3,4,5};
|
|
|
|
|
|
foreach (int elem in arr)
|
|
|
{
|
|
|
Console.WriteLine(elem); //1,2,3,4,5가 다섯줄에 걸쳐 출력된다.
|
|
|
}
|
|
|
|