: 특정 조건을 만족할 때 실행할 코드를 지정하여 실행 흐름의 분기점을 만들기 위해 사용
1) 명제의 내용이 참인지 거짓인지 나타내는 값
2) 데이터의 참, 거짓 판단은 비트에 달려있음
3) 타입별 거짓인 값 (이외의 값은 모두 참)
: 참(true)과 거짓(false)이라는 데이터를 저장하는 타입
1) not 연산자
2) or 연산자
3) and 연산자
4) xor 연산자
1) 논리 and와 or 연산 시 앞 항만 평가해도 진리값을 판별할 수 있는 경우 뒤쪽 항의 평가를 진행하지 않는 것
A && B
A와 B 두 피연산자가 모두 true일 때만 true를 반환합니다.
따라서 A (앞 항)이 false일 경우, B를 평가하지 않고 false를 반환합니다.
A || B
A와 B 두 피연산자 중 하나만 true여도 true를 반환합니다.
따라서 A (앞 항)이 true일 경우, B를 평가하지 않고 true를 반환합니다.
2) 단축평가에 유의하여 더 효율적인 코드를 작성할 수 있음
1) not (A or B) == not A and not B
2) 드모르간 법칙을 이용해 가독성 좋은 코드를 작성할 수 있음
만약 로그인 성공 조건이
isValidID == true && isValidPassword == true && isBrowserLatestVersion == true
라면 로그인이 실패하는 조건에 대한 코드를 작성하기 위해 아래와 같은 방법을 사용할 수 있다.
!(isValidID && isValidPassword && isBrowserLatestVersion)
이 조건에 대한 가독성을 높이기 위해 드모르간의 법칙을 이용한다면
!isValidId || !isValidPassword || !isBrowserLatestVersion
과 같이 작성할 수 있다.
1) == : 좌우 항이 같은지 비교
2) != : 좌우 항이 다른지 비교
if(판정할 조건)
{
// 조건이 true일 때 실행할 코드
}
else
{
// 조건이 false일 때 실행할 코드
}
1) 특정 조건일 경우에만 실행할 코드를 작성할 수 있음
2) else절은 필수가 아니므로 생략할 수 있음
3) 다른 조건을 추가할 경우 else if 절을 작성할 수 있음
if(판정할 조건 1)
{
// 조건1이 true일 때 실행할 코드
}
else if(판정할 조건2)
{
// 조건1이 false이고 조건2가 true일 때 실행할 코드
}
else
{
// 두 조건이 모두 false일 때 실행할 코드
}
switch(평가할 식)
{
case 1:
// 평가한 식이 1일 때 실행할 코드
break;
case 2:
// 평가한 식이 2일 때 실행할 코드
break;
case n:
goto case 1;
default:
// 위의 모든 case에 해당하지 않을 때 실행할 코드
break;
}
1) 해당하는 case를 만나면, break;를 만날 때까지 해당하는 코드를 실행
즉, 만약 break;를 알맞게 작성하지 않으면 그 case의 아래에 작성된 모든 switch문 속 코드가 실행됨
fall-thorough: break;를 의도적으로 작성하지 않고 작성하는 기법
case 'a': case 'i': case 'e': case 'o': case 'u':
Console.WriteLine("모음이다.");
break;
위와 같이 여러 case 중 하나라도 만족하는 경우 실행하고 싶은 코드가 있을 때 활용할 수 있음
3) goto: 특정 case로 실행 흐름을 옮김
4) default
어떤 case에도 해당하지 않고, switch문의 가장 아래로 내려왔을 때 실행
보통 예외처리에 사용
조건식 ? 조건식이 참일 때 실행할 코드 : 조건식이 거짓일 때 실행할 코드;