스위치 문 :이
스위치 문은 다중 방식 지점을 다루는 if
때 에 편리한 대안을 제공합니다. 우리는 어떤 정수 값 라는 검사를하고 다른 작업을
구문은 값 1, 5 또는 다른 값, 다음 switch 문 이 사용될 수있다 여부에 따라 수행 할 가정 :
switch(expression resulting to integer literals/integer literals/enumeration types/){
case constant-expression :
statement(s);
break; //optional
case constant-expression :
statement(s);
break; //optional
// you can have any number of case statements.
default : //Optional and one default statement can be present for a switch
statement(s);
}
다음과 같은 규칙 switch 문에 적용
- switch 문에 사용 된 표현식은 정수 또는 열거 형이거나 클래스가 정수 또는 열거 형으로의 단일 변환 함수 을 갖는 클래스 유형이어야합니다.
- 스위치 내에서 원하는 수의 case 문을 사용할 수 있습니다. 각 경우 다음에 비교할 값과 콜론이옵니다.
- 사례의 상수 표현식은 스위치의 변수와 동일한 데이터 유형이어야하며 상수 또는 리터럴이어야합니다.
- 스위치가 켜져있는 변수가 대소 문자와 같으면이 경우 다음에 나오는
문은 break 문
에 도달 할 때까지 실행됩니다.
- break 문에 도달하면 스위치가 종료되고
제어 흐름이 스위치
문 다음의 다음 줄로 이동합니다.
- 모든 경우에 휴식을 포함 할 필요는 없습니다. 중단이 나타나지 않으면
제어 흐름이 다음의 경우까지 중단
에 도달 할 때까지 떨어집니다.
- switch 문은 선택적으로 기본값을 가질 수 있습니다. 스위치 끝에
이 나타나야합니다. 어떤 경우에도 해당하지 않을 때
작업을 수행하는 데 기본 경우를 사용할 수 있습니다. 기본 절체는 휴식 시간이 필요하지 않습니다. . 다음과 같이
그것은 작동합니다 -
작품 테스트 = 1의 경우 그냥 다음 섹션에 "을 통해 떨어진다"때문이다.
조건 연산자 :?
삼항 연산자 (: C 및 C++에서 사용되는 매우 유용한 조건식입니다. 효과는 if 문과 비슷하지만 몇 가지 큰 이점이 있습니다.
원계 연산자를 사용하여 기본 구문 따라서이다로서
(condition) ? (if_true) : (if_false)
기본적으로 동일 함 :
가
if (condition)
if_true;
else
if_false;
"상태"는 사실 때문에 경우 두 번째 표현 실행한다 ("if_true"), 그렇지 않으면 세 번째가 실행됩니다 ("if_false").
당신 코드의 경우 :
당신은 그것은 * 설명 이름을 사용하는 것이 좋습니다,
#define POSITIVE (1)
#define NEGATIVE (-(1))
#define ZERO (0)
switch ((user_input >= ZERO)? POSITIVE : NEGATIVE)
{
case POSITIVE:
if(user_input == ZERO)
{
cout << "The given value is a Zero." << endl;
}
else
{
cout << "The given value is positive." << endl;
}
break;
case NEGATIVE:
cout << "The given value is negative." << endl;
break;
}
하나의 방법이며, 찾을 수있는 방법 중 하나를 사용할 수 있습니다 *. 예 : 'b' 대신'is_positive'에 대해서 생각해보십시오. 그러면 'bool'유형이어야한다는 것을 쉽게 알 수 있습니다. 아마도'b'는'int' 타입 일 것이지만 당신은 보여주지 않습니다. 유형에 따라 첫 번째 과제도 버그 일 수 있습니다. 할당하는 것보다 다른 값을 테스트하는 것은 분명히 버그입니다. 어쨌든 ** 완전하지만 최소한의 예제 **를 게시해야합니다. –
switch 문 : http : //en.cppreference.com/w/cpp/language/switch – rici
'case 1 :'을'if (b == 1)'로,'case 2 :'를'else로 생각하십시오. if (b == 2)' – David