Short-Circuit AND, &&
쇼트서킷을 사용한 논리 AND
설명
예제
종속형 논리 조건 지정하기
두 번째 조건이 첫 번째 조건에 종속되는 논리문을 지정합니다. 다음 명령문에서 제수 b
가 0인 경우에는 오른쪽의 관계 연산을 실행하는 것이 의미가 없습니다.
b = 1; a = 20; x = (b ~= 0) && (a/b > 18.5)
x = logical
1
결과는 논리값 1
(true
)입니다. 그러나 (b ~= 0)
가 false
일 경우 MATLAB®에서는 전체 표현식이 false
인 것으로 간주하고 표현식의 실행을 조기에 종료합니다.
b = 0
으로 지정하고 동일한 표현식을 실행합니다.
b = 0; x = (b ~= 0) && (a/b > 18.5)
x = logical
0
결과는 논리값 0
(false
)입니다. 첫 번째 명령문이 논리값 0
(false
)으로 실행되므로 표현식은 쇼트서킷됩니다.
구조체 필드 값 변경하기
'File'
과 'Format'
이라는 이름의 필드를 가진 구조체를 만듭니다.
S = struct('File',{'myGraph'},'Format',[])
S = struct with fields:
File: 'myGraph'
Format: []
쇼트서킷 표현식은 여러 조건이 true여야 하는 if
문에서 유용하게 사용됩니다. 첫 번째 표현식이 true일 경우에만 두 번째 표현식을 실행하는 방식으로 각 조건을 작성할 수 있습니다.
S
가 'Format'
이라는 이름의 빈 필드를 갖는 경우만 실행되는 if
문을 지정합니다.
if isfield(S,'Format') && isempty(S.Format) S.Format = '.png'; end S
S = struct with fields:
File: 'myGraph'
Format: '.png'
첫 번째 조건은 'Format'
이 S
구조체의 필드 이름인지 테스트합니다. 그런 다음 두 번째 명령문이 Format
필드가 비어 있는지 여부를 테스트합니다. 두 번째 조건은 첫 번째 조건에 종속됩니다. 첫 번째 조건이 true가 아니라면 두 번째 조건도 true가 될 수 없습니다. S
에 'Format'
이라는 이름의 빈 필드가 있으므로 위의 명령문이 실행되고 S.Format
에 '.png'
값이 할당됩니다.
입력 인수
expr1
, expr2
— 논리식
논리형 스칼라
논리식으로, 논리형 스칼라로 평가되는 유효한 MATLAB® 표현식으로 지정됩니다.
예: isvector(x) && isreal(x)
예: (x > 1) && (x < 10)
데이터형: logical
세부 정보
논리 쇼트서킷
논리 쇼트서킷을 사용하면 결과가 완전히 결정되고 나면 논리식의 평가를 조기에 종료할 수 있습니다. 논리 AND 및 OR의 속성으로 인해 모든 조건을 평가하기 전에 논리식의 결과가 완전히 결정될 수도 있습니다.
and
논리 연산자는 표현식의 어느 한 조건이라도 false인 경우 논리값0
(false
)을 반환합니다.or
논리 연산자는 표현식의 어느 한 조건이라도 true인 경우 논리값1
(true
)을 반환합니다.
이러한 값이 나오면 조기에 논리식의 실행이 종료되며, 이 경우 표현식이 쇼트서킷되었다고 말합니다. 이 기법을 적절하게 사용하면 코드에서 복잡한 비교를 효율적으로 수행할 수 있습니다.
예를 들어, MATLAB은 A && B
표현식에서 조건 A
가 false이면 조건 B
를 실행하지 않습니다. A
가 false인 것이 결정되면 B
의 값은 연산의 결과에 영향을 주지 않습니다.
팁
if
또는while
루프 표현식에 사용되는 경우에 한해, 요소별&
및|
연산자는 쇼트서킷을 사용하여 표현식을 실행합니다.그러나 쇼트서킷 평가를 사용하려면 항상
&&
연산자와||
연산자를 사용해야 합니다. 표현식이 논리형 스칼라가 아닌 경우, 쇼트서킷 연산자&
또는|
를 사용하면 예기치 않은 결과를 얻게 될 수 있습니다.
확장 기능
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)