if
if 구성
if ( 조건 )
{
실행 내용
}
- if문은 조건을 체크해서 만족하면 중괄호 안에 있는 내용을 실행시킴
- 조건을 만족하지 않으면 실행하지 않음
- 조건이라 함은 논리 연산으로 계산된 게 맞는지 확인하는 내용
예제
// 3이 1보다 큰지 체크 - O
if(3 > 1)
{
// 조건을 만족했기에 실행
Console.WriteLine("3은 1보다 크다!");
}
// 0이 1보다 큰지 체크 - X
if(0 > 1)
{
// 조건을 만족하지 못해 실행되지 않음
Console.WriteLine("0은 1보다 크다!");
}
else if
else if 구성
if ( 조건 )
{
}
else if (추가 조건)
{
실행 내용
}
설명
- if문 밑에 따라 붙는다.
- if문을 만족하지 못했을 때 다시 조건을 체크함
- if와 else if가 있을 때 둘 중 하나만 실행됨
예제
int x = 20;
// x가 10보다 큰지 체크 - O
if(x > 10)
{
// 조건이 맞아 if문 안의 내용을 실행
Console.WriteLine("x는 10보다 크다!");
}
else if(x > 5)
{
Console.WriteLine("x는 10 보다는 작지만 5보다는 크다");
}
int x = 8;
// x가 10보다 큰지 체크 - X
if(x > 10)
{
Console.WriteLine("x는 10보다 크다!");
}
else if(x > 5)
{
// 조건이 맞아 else if문 안의 내용을 실행
Console.WriteLine("x는 10 보다는 작지만 5보다는 크다");
}
else
else 구성
if ( 조건 )
{
}
else
{
실행 내용
}
설명
- if문 밑에 따라 붙음
- if문을 만족하지 못했을 때 실행함
- if와 else가 있을 때 둘 중 하나만 실행됨
예제
// 3이 1보다 큰지 체크 - O
if(3 > 1)
{
// 조건이 맞아 if문 안의 내용을 실행
Console.WriteLine("3은 1보다 크다!");
}
else
{
Console.WriteLine("틀렸습니다!!");
}
// 0이 1보다 큰지 체크 - X
if(0 > 1)
{
Console.WriteLine("0은 1보다 크다!");
}
else
{
// 틀렸기 떄문에 else가 실행됨
Console.WriteLine("틀렸습니다!!");
}
if, else if, else 같이 쓰기
세 가지 조건문 같이 쓰기
if ( 조건 )
{
실행 내용
}
else if (추가 조건)
{
실행 내용
}
else
{
실행 내용
}
if ( 조건 )
{
실행 내용
}
else if (추가 조건)
{
실행 내용
}
else if (추가 조건) ←
{
실행 내용
}
else
{
실행 내용
}
설명
- 여러 조건문들이 있을 때 모든 조건 중 단 하나만 실행됨
- 각자 실행시키고 싶을 때는 그냥 if문을 여러 개 사용한다.
예제
int score = 100;
if(score > 90)
{
// 실행
Console.WriteLine("성적이 매우 우수합니다!!!!!");
}
else if(score > 70)
{
Console.WriteLine("성적이 우수합니다.");
}
else if(score > 50)
{
Console.WriteLine("합격은 했지만 좀 더 노력하세요");
}
else
{
Debug.Log("불합격입니다.");
}
int score = 60;
if(score > 90)
{
Console.WriteLine("성적이 매우 우수합니다!!!!!");
}
else if(score > 70)
{
Console.WriteLine("성적이 우수합니다.");
}
else if(score > 50)
{
// 실행
Console.WriteLine("합격은 했지만 좀 더 노력하세요");
}
else
{
Console.WriteLine("불합격입니다.");
}
switch case
구성
switch (조건 변수)
{
case 상수조건1 :
실행내용
break;
case 상수조건2 :
실행내용
break;
case 상수조건3 :
실행내용
break;
}
설명
- 변수 한 개를 가지고 그 변수가 무엇인지 확인하는 조건문
- if ~ else if로 완벽하게 대체할 수 있지만 한 가지 조건을 더 정교하게 체크할 수 있다.
- case에 들어가는 조건은 고정된 상수여야 한다.
- 1, 2, 3 : 고정된 값 O
- x > 10 : 변할 수 있는 값 X
- int a 등 새로운 변수 활용 X
- case에 들어가는 조건문은 중복되면 안됨
예시
- 변수를 한 가지 두고 그 변수에 의해 저녁 메뉴를 고르는 동작을 한다고 가정함
int x = 5;
switch(x)
{
case 1:
Console.WriteLine("치킨을 주문하자.");
break;
case 2:
Console.WriteLine("피자를 주문하자.");
break;
default:
Console.WriteLine("마라탕을 주문하자.");
break;
}
논리 연산 - 조건부 논리 연산자
- 조건부 논리 연산자는 같음, 비교와는 다르게 조금 일반적이지 않은 판단을 하는 연산자.
- &&(AND 연산자)와 ||(OR 연산자)가 있다.
&& (AND 연산자)
예제
- 제가 친구 A, B랑 식사 약속이 있습니다. 제가 먼저 약속 장소에 먼저 도착해서 기다리고 있습니다. 저는 친구 A랑 B가 모두 도착하면 식당으로 이동할 것입니다.
bool isArrive_A = true; // 친구 A는 도착했다!
bool isArrive_B = false; // 친구 B는 도착하지 않았다!
// AND 연산자 && 사용
if(isArrive_A && isArrive_B)
{
Console.WriteLine("식당으로 이동");
}
else
{
Console.WriteLine("친구를 기다리자"); <- A는 true지만 B는 false
} A와 B가 모두 true가 아니므로 else 실행
bool isArrive_A = true; // 친구 A는 도착했다!
bool isArrive_B = true; // 친구 B도 도착했다!
// AND 연산자 && 사용
if(isArrive_A && isArrive_B)
{
Console.WriteLine("식당으로 이동"); <- A는 true B도 true
} A와 B가 모두 true이기 때문에 if 실행
else
{
Console.WriteLine("친구를 기다리자");
}
|| (OR 연산자)
예제
- 제가 친구 A, B랑 식사 약속이 있습니다. 제가 먼저 약속 장소에 먼저 도착해서 기다리고 있습니다. 저는 친구 A랑 B 둘 중 한 명이라도 오면 식당으로 이동할 것입니다.
bool isArrive_A = true; // 친구 A는 도착했다!
bool isArrive_B = false; // 친구 B는 도착하지 않았다!
// OR 연산자 || 사용
if(isArrive_A || isArrive_B)
{
Console.WriteLine("식당으로 이동"); <- A는 true B는 false
} 둘 중 한 명이라도 왔으니 if 실행
else
{
Console.WriteLine("친구를 기다리자");
}
bool isArrive_A = true; // 친구 A는 도착했다!
bool isArrive_B = true; // 친구 B도 도착했다!
// OR 연산자 || 사용
if(isArrive_A || isArrive_B)
{
Console.WriteLine("식당으로 이동"); <- A는 true B도 true
} 둘 중 한 명이라도 왔으니 if 실행
else
{
Console.WriteLine("친구를 기다리자");
}
자주 하는 실수들 ('='과 '==')
if( 조건 ) ←
{
실행 내용
}
- if문을 사용할 때 괄호 안에는 bool이 들어가게 됨
- 이때 조건이 같은지 체크할 때 =를 사용하는 실수를 하기도 함
int num = 10;
if(num = 10) X '=' 은 데이터를 저장할때 쓰는 연산자
{
}
int num = 10;
if(num == 10) O '==' 이 데이터가 같은지 체크하는 연산자
{
}
- 조건을 체크할 때는 a = 10을 사용하면 안됨
- a == 10을 사용해야 됨