if문은 베타적 선택으로 하나가 맞으면 무조건 뒤는 보지도 않고 날아감
e.g) if → else if → else 구조일때 if 가 맞으면 뒤의 else if 와 else는 작동X
C#의 경우에는 if(조건문)에는 bool형만 가능함 if(1) 이거 안됨
if if 연속보다는 if else가 더 좋다. → 가독성이 더 좋음
Note 마지막에 else문을 추가하는 것이 논리적 완결을 가져온다.*
string st;
int n = 2;
if (n % 2 == 0) st = "짝수";
if (n % 2 != 0) st = "홀수";
Console.WriteLine(st);
// 이경우, st에 할당값이 없기에 if if 문일 경우에 대해
// 다른 경우의 수가 있다고 로직이 생각하여 빌드에러가 발생
// 1) string st="null"; 이라고 적던지
// 2) if else로 하면 로직적으로 완결성이 생겨서 괜찮아진다.
string st = "xxx";
int n = 2;
if (n % 2 == 0) st = "짝수";
else st = "홀수";
Console.WriteLine(st);
// 만약이렇게 1,2 둘다 한다면 경고로 굳이 할당하냐고 물어봄
break; 문을 없어도 실행되지만, 의도한 경우에만 제거
default문은 마지막에 하며, 마지막 break는 생략해도 무방함
switch (조건식)
{
case 상수1:
// 실행할 코드
break;
case 상수2:
// 실행할 코드
break;
case 상수N:
// 실행할 코드
break;
default:
// 실행할 코드
break; //생략가능
}
크게 while(반복 횟수를 모르는 경우), for(반복 횟수를 아는 경우)로 나누어 구조를 짤 수 있다.
do while 문 : 우선 한번 작동하고 검사함 (반복문 중 유일하게 한번 무조건 작동하는 코드)
while (조건식); //-> 이걸 while (조건식) null문장코드; 로 해석해서 무한루프가 돈다
//실행코드
------------------------
do
{
//실행코드 <- 우선은 한번은 작동할 것이다.
}
while (조건식) : <- 콜론임을 주의하자
for문은 for(초기화식;조건식;반복식;){코드}로 이루어져 있다.
foreach(데이터형 변수명 in 배열컬렉션) 로 이루어져 있다.
여기서, 데이터 형 변수명 이 루프에서 쓰는 매개변수이고, 배열컬랙션이 시퀀스다.e.g) **foreach** (int a **in** arr ) 에서 arr = {1,2,3,4} 로 적어놓으면 작동. (사실잘 안씀;)
break문은 반복문 내에서 break; 가 실행 시, 하나의 루프를 제거하여 탈출
while(for(break)) 일 때 for문 하나만 벗어 나가지게 된다.
continue문은 반복문 내에서 continue; 가 실행 시, 한번의 루프를 패스하고 진행
goto문은 스파게티를 만드니까 그냥 쓰지마., 쓸 수도 있나요? 아니 쓰지마., 쓰려고? 쓰지마.