수색…
If-Else Statement
프로그래밍은 일반적으로 다른 입력 또는 조건에서 코드가 작동하는 방식을 설명하기 위해 코드 내의 decision
또는 branch
필요로합니다. C # 프로그래밍 언어 (및이 문제에 대한 대부분의 프로그래밍 언어) 내에서 프로그램 내에서 분기를 만드는 가장 단순하고 때로는 가장 유용한 방법은 If-Else
문을 사용하는 것입니다.
100까지의 점수를 나타내는 int 매개 변수를 취하는 메서드 (일명 함수)가 있다고 가정하고 메소드는 통과 또는 실패 여부를 나타내는 메시지를 출력합니다.
static void PrintPassOrFail(int score)
{
if (score >= 50) // If score is greater or equal to 50
{
Console.WriteLine("Pass!");
}
else // If score is not greater or equal to 50
{
Console.WriteLine("Fail!");
}
}
이 방법을 살펴보면 If
문 score >= 50
코드 줄 ( score >= 50
)이 나타날 수 있습니다. 이는 boolean
조건으로 볼 수 있습니다. 조건이 true
로 평가 if
{ }
사이에있는 코드가 실행됩니다.
예를 PrintPassOrFail(60);
메서드가 다음과 같이 호출 된 경우 PrintPassOrFail(60);
, 메소드의 출력은 Pass!를 말하는 Console Print가됩니다 . 매개 변수 값 60은 50보다 크거나 같습니다.
그러나 메소드가 다음과 같이 호출 된 경우 PrintPassOrFail(30);
, 메서드의 출력은 Fail! . 이는 값 30이 50보다 크거나 같지 않으므로 If
문 대신 else
{ }
사이의 코드가 실행되기 때문입니다.
이 예에서 우리는 점수 가 100 점 까지 올라야 한다고 말했지만 전혀 계산되지 않았습니다. 100을 넘지 않거나 0 이하로 떨어지는 점수 를 계산하려면 If-Else If-Else Statement 예를 참조하십시오.
If-Else If-Else Statement
If-Else Statement 예제에 이어 이제는 Else If
문을 소개 할 차례입니다. Else If
문은 If-Else If-Else 구조의 If
문 바로 뒤에 오지만 본질적으로 If
문과 비슷한 구문을가집니다. 간단한 If-Else 문이 수행 할 수있는 것보다 더 많은 분기를 코드에 추가하는 데 사용됩니다.
If-Else Statement 의 예제에서, 점수는 100까지 올라가도록 지정되었습니다. 그러나 이것에 대한 어떤 수표도 결코 없었다. 이 문제를 해결하려면 If-Else Statement 의 메소드를 다음과 같이 수정하십시오.
static void PrintPassOrFail(int score)
{
if (score > 100) // If score is greater than 100
{
Console.WriteLine("Error: score is greater than 100!");
}
else if (score < 0) // Else If score is less than 0
{
Console.WriteLine("Error: score is less than 0!");
}
else if (score >= 50) // Else if score is greater or equal to 50
{
Console.WriteLine("Pass!");
}
else // If none above, then score must be between 0 and 49
{
Console.WriteLine("Fail!");
}
}
이 모든 명령문은 조건이 충족 될 때까지 위에서 아래로 순서대로 실행됩니다. 이 새로운 메소드 업데이트에서 우리는 이제 두 개의 새로운 브랜치를 추가 하여 범위를 벗어나는 스코어를 수용했습니다.
예를 들어, 우리 코드에서 PrintPassOFail(110);
이라고 불렀다면 PrintPassOFail(110);
, 출력은 Error : score가 100보다 큰 콘솔 프린트 가됩니다! ; PrintPassOrFail(-20);
과 같은 코드 PrintPassOrFail(-20);
메서드를 호출하면됩니다 PrintPassOrFail(-20);
출력은 Error : score가 0보다 작습니다. .
명령문 전환
switch 문을 사용하면 변수 목록에 대해 동등 함을 테스트 할 수 있습니다. 각 값을 대 / 소문자라고하며, 켜져있는 변수는 각 대문자로 확인됩니다.
switch
문은 종종 단일 변수에 대해 여러 가능한 값을 테스트 할 때 if...else if... else..
문보다 간결하고 이해할 수 있습니다.
구문은 다음과 같습니다.
switch(expression) {
case constant-expression:
statement(s);
break;
case constant-expression:
statement(s);
break;
// you can have any number of case statements
default : // Optional
statement(s);
break;
}
switch 문을 사용하는 동안 고려해야 할 sevaral 것들이 있습니다.
- switch 문에 사용 된 표현식은 정수형 또는 열거 형이거나 클래스가 정수 또는 열거 형 유형에 대한 단일 변환 함수를 갖는 클래스 유형이어야합니다.
- 스위치 내에서 원하는 수의 case 문을 사용할 수 있습니다. 각 경우 다음에 비교할 값과 콜론이옵니다. 비교할 값은 각 switch 문 내에서 고유해야합니다.
- switch 문은 선택적인 기본 경우를 가질 수 있습니다. 모든 경우가 사실이 아닐 때 작업을 수행하는 데 기본 경우를 사용할 수 있습니다.
- 각 사례는 빈 문장이 아닌 한
break
문으로 끝나야합니다. 이 경우 실행은 그 아래의 경우 계속됩니다. break 문은return
,throw
또는goto case
문이 사용될 때 생략 될 수도 있습니다.
예를 들면 현명한 성적을 부여 할 수 있습니다.
char grade = 'B';
switch (grade)
{
case 'A':
Console.WriteLine("Excellent!");
break;
case 'B':
case 'C':
Console.WriteLine("Well done");
break;
case 'D':
Console.WriteLine("You passed");
break;
case 'F':
Console.WriteLine("Better try again");
break;
default:
Console.WriteLine("Invalid grade");
break;
}
명령문 조건이 표준 불린 식과 값인 경우
다음 진술
if (conditionA && conditionB && conditionC) //...
~와 정확히 같다.
bool conditions = conditionA && conditionB && conditionC;
if (conditions) // ...
즉, "if"문 내부의 조건은 보통 부울 식을 형성합니다.
조건문을 작성할 때 흔히 범하는 실수는 true
와 false
를 명시 적으로 비교하는 것 true
.
if (conditionA == true && conditionB == false && conditionC == true) // ...
이것은 다음과 같이 재 작성 될 수있다.
if (conditionA && !conditionB && conditionC)