C#조건문의 종류로는
if, else if/ else
switch
삼항 연산자(?:) 가 있다.
먼저 if / else if / else 를 살펴보면
if로 시작해서 그 조건에 맞다면 참이 되어 {}안의 코드를 출력한다.
예시로
int age = 22;
if (age >= 65) // 나이가 65세 이상일때 참(true)인 조건은
{
Console.WriteLine("노년기"); // 콘솔에 "노년기"가 출력됩니다.
}
else if (age >= 20) // 나이가 20세 이상일때 참(true)인 조건은
{
Console.WriteLine("성인"); // 콘솔에 "성인"이 출력됩니다.
}
else // 위의 두가지외의 모든 값은 마지막 else에서 실행됩니다.
{
Console.WriteLine("청소년"); // 콘솔에 "청소년"이 출력됩니다.
}
age가 22이기 때무에 성인으로 출력된다.
더 해보면
int age = 19;
if (age >= 65) // 나이가 65세 이상일때 참(true)인 조건은
{
Console.WriteLine("노년기"); // 콘솔에 "노년기"가 출력됩니다.
}
else if (age >= 20) // 나이가 20세 이상일때 참(true)인 조건은
{
Console.WriteLine("성인"); // 콘솔에 "성인"이 출력됩니다.
}
else // 위의 두가지외의 모든 값은 마지막 else에서 실행됩니다.
{
Console.WriteLine("청소년"); // 콘솔에 "청소년"이 출력됩니다.
이번에는 age가 19가 되어 콘솔에 청소년이 출력된다.
다음으로 switch를 살펴보면 변수 값이 딱 정해진 케이스들 중 하나일때 사용된다.
switch를 찾아보면서 느낀것은 위에 if 조건문 처럼 조건이 많아 질때 쓰면 편해질거 같다는 생각을 했다. 이 두개의 차이를 알아보면 if조건문은 조건을 자유롭게 쓸 수 있다는 것이고 switch는 정해진 값 비교만 가능하다는 것이다.
3번 삼항 연산자(?:)는 짧고 간단한 조건일 때 쓰기 좋다.
여기서 ?는 if, :는 else인거 같다.
예시로 써보면
{
internal class Program
{
static void Main(string[] args)
{
int age = 17;
string result = age >= 20 ? "성인 입니다." : "미성년자입니다.";
Console.WriteLine(result);
}
}
}
여기서 내가 직접 나이를 입력해 출력을 원한다면 이렇게 쓸 수 있다.
{
internal class Program
{
static void Main(string[] args)
{
int age = int.Parse(Console.ReadLine());
string result = age >= 20 ? "성인 입니다." : "미성년자입니다.";
Console.WriteLine(result);
}
}
}
정리하자면
조건이 복잡하고 경우가 여러개일 경우 - if, else if, else
값이 정해진 경우(번호, 요일, 문자) - switch
참/거짓에 따라 간단히 결정할 때 - 삼항 연산자
내가 배운 것을 바탕으로 이 조건문을 완성하고자 한다.
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
int age = 21;
bool hasCoupon = true;
if (age >= 20 || hascoupon)
{
Console.WriteLine("입장 가능합니다.");
}
else
Console.WriteLine("입장 불가입니다.");
}
}
}
}
나이가 20세 이상이거나 쿠폰이 있으면 입장이 가능한 조건문을 만들어보세요.