if-else(C# 참조)if-else (C# Reference)

if 문은 Boolean 식의 값에 따라 실행할 문을 식별합니다.An if statement identifies which statement to run based on the value of a Boolean expression. 다음 예제에서는 Boolean 변수 resulttrue 로 설정된 다음 if 문에서 확인됩니다.In the following example, the Boolean variable result is set to true and then checked in the if statement. 출력은 The condition is true입니다.The output is The condition is true.

bool condition = true;

if (condition)
{
    Console.WriteLine("The variable is set to true.");
}
else
{
    Console.WriteLine("The variable is set to false.");
}

콘솔 앱의 Main 메서드에 배치하여 이 항목의 예제를 실행할 수 있습니다.You can run the examples in this topic by placing them in the Main method of a console app.

C#의 if 문은 다음 예제와 같이 두 가지 형식을 사용할 수 있습니다.An if statement in C# can take two forms, as the following example shows.

// if-else statement  
if (condition)  
{  
    then-statement;  
}  
else  
{  
    else-statement;  
}  
// Next statement in the program.  

// if statement without an else  
if (condition)  
{  
    then-statement;  
}  
// Next statement in the program.  

if-else 문에서 condition 이 true로 평가되는 경우 then-statement 가 실행됩니다.In an if-else statement, if condition evaluates to true, the then-statement runs. condition 이 false이면 else-statement 가 실행됩니다.If condition is false, the else-statement runs. condition 이 true인 동시에 false일 수는 없으므로 then-statement 문의 else-statementif-else 를 둘 다 실행할 수는 없습니다.Because condition can’t be simultaneously true and false, the then-statement and the else-statement of an if-else statement can never both run. then-statement 또는 else-statement 가 실행된 후 제어가 if 문 뒤의 다음 문으로 전송됩니다.After the then-statement or the else-statement runs, control is transferred to the next statement after the if statement.

if 문을 포함하지 않는 else 문에서 condition 이 true이면 then-statement 가 실행됩니다.In an if statement that doesn’t include an else statement, if condition is true, the then-statement runs. condition 이 false이면 제어가 if 문 뒤의 다음 문으로 전송됩니다.If condition is false, control is transferred to the next statement after the if statement.

then-statementelse-statement 는 둘 다 단일 문이나 중괄호({})로 묶인 여러 문으로 구성될 수 있습니다.Both the then-statement and the else-statement can consist of a single statement or multiple statements that are enclosed in braces ({}). 단일 문의 경우 중괄호는 선택 사항이지만 권장됩니다.For a single statement, the braces are optional but recommended.

then-statementelse-statement 의 문은 원래 if 문 내부에 중첩된 다른 if 문을 포함하여 모든 종류일 수 있습니다.The statement or statements in the then-statement and the else-statement can be of any kind, including another if statement nested inside the original if statement. 중첩된 if 문에서 각 else 절은 해당 if 가 없는 마지막 else에 속합니다.In nested if statements, each else clause belongs to the last if that doesn’t have a corresponding else. 다음 예제에서 Result1m > 10 이 둘 다 true이면 n > 20 이 나타납니다.In the following example, Result1 appears if both m > 10 and n > 20 evaluate to true. m > 10 이 true이지만 n > 20 이 false이면 Result2 가 나타납니다.If m > 10 is true but n > 20 is false, Result2 appears.

// Try with m = 12 and then with m = 8.
int m = 12;
int n = 18;

if (m > 10)
    if (n > 20)
    {
        Console.WriteLine("Result1");
    }
    else
    {
        Console.WriteLine("Result2");
    }

Result2 이 false일 때 (m > 10) 를 대신 표시하려는 경우 다음 예제와 같이 중괄호로 중첩된 if 문의 시작 및 끝을 설정하여 해당 연결을 지정할 수 있습니다.If, instead, you want Result2 to appear when (m > 10) is false, you can specify that association by using braces to establish the start and end of the nested if statement, as the following example shows.

// Try with m = 12 and then with m = 8.
if (m > 10)
{
    if (n > 20)
        Console.WriteLine("Result1");
}
else
{
    Console.WriteLine("Result2");
}

조건 (m > 10)이 false이면 Result2가 나타납니다.Result2 appears if the condition (m > 10) evaluates to false.

Example

다음 예제에서는 키보드에서 문자 하나를 입력하며, 프로그램이 중첩된 if 문을 사용하여 입력 문자가 영문자인지 여부를 확인합니다.In the following example, you enter a character from the keyboard, and the program uses a nested if statement to determine whether the input character is an alphabetic character. 입력 문자가 영문자이면 프로그램에서 입력 문자가 소문자인지 대문자인지를 확인합니다.If the input character is an alphabetic character, the program checks whether the input character is lowercase or uppercase. 각 경우에 대한 메시지가 나타납니다.A message appears for each case.

Console.Write("Enter a character: ");
char c = (char)Console.Read();
if (Char.IsLetter(c))
{
    if (Char.IsLower(c))
    {
        Console.WriteLine("The character is lowercase.");
    }
    else
    {
        Console.WriteLine("The character is uppercase.");
    }
}
else
{
    Console.WriteLine("The character isn't an alphabetic character.");
}

//Sample Output:

//Enter a character: 2
//The character isn't an alphabetic character.

//Enter a character: A
//The character is uppercase.

//Enter a character: h
//The character is lowercase.

Example

다음 부분 코드와 같이 if 문을 else 블록 안에 중첩할 수도 있습니다.You also can nest an if statement inside an else block, as the following partial code shows. 예제에서는 if 문을 else 블록 2개와 then 블록 1개 안에 중첩합니다.The example nests if statements inside two else blocks and one then block. 주석은 각 블록에서 true 또는 false인 조건을 지정합니다.The comments specify which conditions are true or false in each block.

// Change the values of these variables to test the results.
bool Condition1 = true;
bool Condition2 = true;
bool Condition3 = true;
bool Condition4 = true;

if (Condition1)
{
    // Condition1 is true.
}
else if (Condition2)
{
    // Condition1 is false and Condition2 is true.
}
else if (Condition3)
{
    if (Condition4)
    {
        // Condition1 and Condition2 are false. Condition3 and Condition4 are true.
    }
    else
    {
        // Condition1, Condition2, and Condition4 are false. Condition3 is true.
    }
}
else
{
    // Condition1, Condition2, and Condition3 are false.
}

Example

다음 예제에서는 입력 문자가 소문자, 대문자 또는 숫자인지를 확인합니다.The following example determines whether an input character is a lowercase letter, an uppercase letter, or a number. 세 가지 조건이 모두 false이면 문자는 영숫자 문자가 아닙니다.If all three conditions are false, the character isn’t an alphanumeric character. 예제에서는 각 경우에 대한 메시지가 표시됩니다.The example displays a message for each case.

Console.Write("Enter a character: ");
char ch = (char)Console.Read();

if (Char.IsUpper(ch))
{
    Console.WriteLine("The character is an uppercase letter.");
}
else if (Char.IsLower(ch))
{
    Console.WriteLine("The character is a lowercase letter.");
}
else if (Char.IsDigit(ch))
{
    Console.WriteLine("The character is a number.");
}
else
{
    Console.WriteLine("The character is not alphanumeric.");
}

//Sample Input and Output:
//Enter a character: E
//The character is an uppercase letter.

//Enter a character: e
//The character is a lowercase letter.

//Enter a character: 4
//The character is a number.

//Enter a character: =
//The character is not alphanumeric.

else 블록 또는 then 블록의 문이 유효한 모든 문일 수 있는 것과 마찬가지로 유효한 모든 부울 식을 조건에 대해 사용할 수 있습니다.Just as a statement in the else block or the then block can be any valid statement, you can use any valid Boolean expression for the condition. &&, &, ||, |!와 같은 논리 연산자를 사용할 수 있습니다.You can use logical operators such as &&, &, ||, | and ! 와 같은 논리 연산자를 사용하여 복합 조건을 만들 수 있습니다.to make compound conditions. 다음 코드는 예제를 보여 줍니다.The following code shows examples.

// NOT  
bool result = true;  
if (!result)  
{  
    Console.WriteLine("The condition is true (result is false).");  
}  
else  
{  
    Console.WriteLine("The condition is false (result is true).");  
}  

// Short-circuit AND  
int m = 9;  
int n = 7;  
int p = 5;  
if (m >= n && m >= p)  
{  
    Console.WriteLine("Nothing is larger than m.");  
}  

// AND and NOT  
if (m >= n && !(p > m))  
{  
    Console.WriteLine("Nothing is larger than m.");  
}  

// Short-circuit OR  
if (m > n || m > p)  
{  
    Console.WriteLine("m isn't the smallest.");  
}  

// NOT and OR  
m = 4;  
if (!(m >= n || m >= p))  
{  
    Console.WriteLine("Now m is the smallest.");  
}  
// Output:  
// The condition is false (result is true).  
// Nothing is larger than m.  
// Nothing is larger than m.  
// m isn't the smallest.  
// Now m is the smallest.  

C# 언어 사양C# Language Specification

자세한 내용은 C# 언어 사양을 참조하세요.For more information, see the C# Language Specification. C# 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.The language specification is the definitive source for C# syntax and usage.

참고 항목See Also

C# 참조C# Reference
C# 프로그래밍 가이드C# Programming Guide
C# 키워드C# Keywords
?: 연산자?: Operator
if-else 문(C++)if-else Statement (C++)
switchswitch