IF 문에 조건부 연산자 AND 또는 OR을 사용 하시겠습니까?


30

이것은 아마도 매우 간단한 질문이지만, 지금까지 답변을 찾지 못했습니다 (올바른 출처가 없어야하며 vim의 도움으로 어디서 검색 해야할지 모르겠습니다).

조건이 있으며 'AND'를 포함하고 싶습니다.

if (condition1 .AND. condition2)
   "do what I want you to do
endif

하지만 구문을 찾을 수 없습니다. 'OR'도 마찬가지입니다.


8
훗, .AND.그리고 .OR., 내가 포트란 구문을 보지 못했다되는 길고 긴 반면에 사용되는 외부 포트란 코드. :) Vim은 대신 &&AND와 ||OR에 C와 같은 구문을 사용 합니다. 자세한 내용 :h expression-syntax을 참조하십시오 .
lcd047

1
나는 당신의 의견에 동정심을 느꼈습니다. * Fortran 코드 외부에서 오랫동안 사용 된 것을 보지 못했습니다. :) * : 감사합니다. 귀하의 의견은 답변으로 게시하면 기꺼이 받아 들일 것입니다!
Feffe

2
질문 제목이 "and"및 / 또는 "or"와 같이 나란히 표시되는 방식이 혼란 스러웠습니다. (jk)
벤 밀우드

2
"and"및 / 또는 "or"를 쓸 수있었습니다. 그러나 나는 감히하지 않았다!
Feffe

답변:


30

@ lcd047이 그의 의견에서 말했듯이 vimscript는 C와 같은 연산자 &&를 사용 ||합니다.

에서 사용법에 대한 설명을 찾을 수 있습니다 :h expr2. 의사가 언급 한 몇 가지 중요한 사항은 다음과 같습니다.

당신은 사업자가 연결될 수 있음을 발견하고 있습니다 &&우선 순위를 통해 소요 ||있으므로,

&nu || &list && &shell == "csh"

에 해당

&nu || (&list && &shell == "csh")

또한 결과가 알려지면 "단락"이라는 표현, 즉 추가 인수는 평가되지 않습니다. 이것은 C에서 일어나는 것과 같습니다.

사용하는 경우 :

if a || b

b정의되지 않은 식이라도 유효합니다 .


2
@ lcd047이 하나를 작성하지 않았기 때문에이 답변을 작성했으며 문서에 대한 메모가 흥미로울 것이라고 생각했지만 lcd047이 답변을 생성하면이 답변을 기꺼이 삭제하여 크레딧을 얻도록 기꺼이 삭제합니다.
statox

1
나는 그것을 의심한다. 얼마 전에 lcd047은 그들이 답변을 게시하지 않을 것이라고 말했습니다.
muru

@muru : 나는 또한 어딘가에 있다는 것을 보았지만 다른 사용자가 아닌 그 사람이라는 것을 100 % 확신하지 못했습니다.
statox
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.