[주의!] 문서의 이전 버전(에 수정)을 보고 있습니다. 최신 버전으로 이동
1. 개요2. true, false3. 매개변수 테스트4. |기호 테스트
4.1. 논리 연산4.2. 비트 연산
5. & 기호 테스트
5.1. 논리 연산5.2. 비트 연산
6. 부등호 테스트7. ^ 기호 테스트8. !기호 테스트9. ~기호 테스트10. 역링크 등 기타 테스트11. 메모12. 결론

1. 개요[편집]

나무위키:문법 도움말/심화 문서의 if 문단도 참고.

if 구문 테스트.
RAW(원문) 참조.

2. true, false[편집]

#!undefined_command ==1
1

if true 1 (정의되지 않는 #!(Shebang) 구문(문법)이면 리터럴로 출력되어야 하겠으나 if는 그렇지 않다.)
1 (true는 출력된다.)

if false 1

3. 매개변수 테스트[편집]

→ 매개변수 대상에 대한 자세한 내용은 테스트:If문법/include 대상 문서를 참고하십시오.
→ 매개변수 대상의 include 테스트 결과에 대한 자세한 내용은 테스트:If문법/include 결과 문서를 참고하십시오.

4. |기호 테스트[편집]

4.1. 논리 연산[편집]

|기호 테스트 (둘 다 true)
출력 (| 기호)

|기호 테스트 (둘 중 한 쪽 false)
출력 (| 기호)

|기호 테스트 (둘 다 false)

true | true : 출력된다.
출력(| 기호)

true | false : 출력된다.
출력 (| 기호)

false | true : 출력된다.
출력 (| 기호)

false | false : 출력되지 않는다.

결론 : | 기호는 논리연산 OR

true || true : 출력된다.
출력 (| 기호)

true ||| true : 출력되지 않는다.

4.2. 비트 연산[편집]

| 기호가 2진수 비트합으로도 처리되는 것은, true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로
case1
case2
case3
case4
A
1
1
0
0
B
1
0
1
0
A|B
1
1
1
0
표와 같이 처리되기 때문으로 보인다. (1을 true, 0을 false 놓고 보면 | 연산 결과가 같다.)

그래서 이진법도 각 자릿수별로 | 연산 비교가 가능한 것으로 보인다.
가령 5|3을 보자면 이진법으로 변환한 값의 각 자릿수에 따라 연산이 된다.
10진수
22
21
20
5 =
1
0
1
3 =
0
1
1
(5|3) = 7
1
1
1

(5|3)=7 테스트 : 출력된다.
출력

(5|3)=6 테스트 : 출력되지 않는다.

그래서 (5|3)=7 을 조건부로 둔 if 구문(문법)을 걸어놓으면 true로 동작되는 것으로 보인다.

(9|5)=13 테스트
10진수
23
22
21
20
9 =
1
0
0
1
5 =
0
1
0
1
(9|5) = 13
1
1
0
1
출력 (1101)

(9|5)=12 테스트 : 일(20)의 자릿수가 틀려서 출력되지 않는다.

5. & 기호 테스트[편집]

5.1. 논리 연산[편집]

&기호 테스트 (한 쪽 false) : 출력되지 않는다.

&기호 테스트 (한 쪽 false) : 출력되지 않는다.

& 기호 테스트 (둘 다 true) : 출력된다.
출력 (& 기호)

true & true : 출력된다.
출력 (& 기호)

true & false : 출력되지 않는다.

false & true : 출력되지 않는다.

false & false : 출력되지 않는다.

결론 : & 기호는 논리연산 AND

5.2. 비트 연산[편집]

& 기호가 2진수 비트곱으로도 처리되는 것은, |기호와 같이 true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로
case1
case2
case3
case4
A
1
1
0
0
B
1
0
1
0
A&B
1
0
0
0
표와 같이 처리되기 때문으로 보인다. (1을 true, 0을 false 놓고 보면 & 연산 결과가 같다.)

10진수
24
23
22
21
20
25
1
1
0
0
1
19
1
0
0
1
1
(25&19) = 17
1
0
0
0
1
if (25&19)=17 : 출력된다.
출력

if (25&19)=19 : 21의 자릿수가 틀려서 출력되지 않는다.


10진수
24
23
22
21
20
20
1
0
1
0
0
11
0
1
0
1
1
(20&11) = 0
0
0
0
0
0
if (20&11)=0
출력

6. 부등호 테스트[편집]

연산 테스트 (음수도 읽는 모양이다.)
출력 (연산 테스트)

geq(greater than or equal to)를 >=로 입력 안 하고 =>로 입력하면 깨진다.

geq 동작 가능 인증 (if 1>=1 걸면 true로 나온다.)
출력 (연산 테스트)

leq(less than or equal to)를 <=로 입력 안 하고 =<로 입력하면 깨진다.

leq(<=) 로 해도 나오지 않다가 잠수함 패치로 fix된 모양이다.
출력 (연산 테스트)

leq 동작 가능 인증 (if 1<=1 걸면 true로 나온다.)
출력 (연산 테스트)

< and >=
출력 (연산 테스트)

> 부등호도 가능하다.
출력 (연산 테스트)

(true and true) or (false and true)
출력 (연산 테스트)

* (times) 기호 : 출력된다.
출력 (연산 테스트)

* 식 을 틀리게 만들면 출력되지 않는다. (따라서 *는 지원되는 모양이다.)

/ (devided by)
출력 (연산 테스트)

/ 식을 틀리게 만들면 나오지 않는다. (따라서 /는 지원되는 모양이다.)

결론 : * / > >= < <= 연산기호는 지원되는 모양이다.

7. ^ 기호 테스트[편집]

^ (exponent?)
출력 (^기호)

^(1/2)
출력 (^기호)

^ 틀리게 해도 나오는 것으로 봐서는 지원되지 않는 모양이다?[1]
출력 (^기호)

true ^ true : 출력되지 않는다.

true ^ false : 출력된다.
출력 (^ 기호)

false ^ true : 출력된다.
출력 (^ 기호)

false & false : 출력되지 않는다.

결론 : ^는 논리연산 XOR
그럼 XAND도 있을텐데

8. !기호 테스트[편집]

false == false : 출력된다.
출력 (f=f)

false == true : 출력되지 않는다.

false != true : 출력된다.
출력 (!= 기호)

1!=0 : 출력된다.
출력 (1!=0)

1 !=0 : 출력된다.
출력 (1 !=0)

1 !==0 : 출력되지 않는다.

1<0 : 출력되지 않는다.

1 !< 0 : 출력되지 않는다.

1 !(<) 0 : 출력되지 않는다. 부등호에 걸 수 있는 기호가 아니라서 깨진 모양이다.

!(1<0) : 출력된다.
출력 !(1<0)

!(true and true) : 출력되지 않는다.

!(true and false) : 출력된다.
출력 !(t&f)

!(false and false) : 출력된다.
출력 !(f&f)
그냥 and 식 전체에 ! 씌우면 nand가 된다.

!(true ^ true)
출력 !(t^t)

!(true ^ false)

!(false ^ true)

!(false ^ false)
출력 !(f^f)
그냥 ^ 식 전체에 ! 씌우면 xand(nxor)이다.

!(!true) : 출력된다 (not of not)
출력 !(!t)

!!true : 출력되지 않는다. !는 범위를 입력해줘야 동작되는 모양.

not of not of not of true : 출력되지 않는다.

not of not of not of not of true 사각형안의사각형안의 : 출력된다.
출력 !(!(!(!t)))

결론 : !는 논리연산 NOT이고, 범위를 지정해줘야 동작된다.

9. ~기호 테스트[편집]

~false : 출력된다.
출력 ~f

~(~true) : 출력된다.
출력 ~(~t)

~(!(~(!true))) : 출력된다.
출력 ~(!(~(!t)))

~true : 출력된다.
출력 ~t

~(true) : 출력된다.
출력 ~(t)

(~true) : 출력된다.
출력 (~t)

~~true : 출력된다.
출력 ~~t

~(-1)=0 : 출력된다.
출력

~(-1)=1 : 출력되지 않는다.

~(-2)=1 : 출력된다.
출력

~false=false : 출력되지 않는다.

~false=true : 출력되지 않는다.

~(!(true))=false : 출력되지 않는다.

결론 : ~ 기호는 논리 연산으로는 동작되지 않는다.

다만 위의 ~(-1)==1 을 가져와서 비트 연산이 참인지 거짓인지 나오는 결과를 두고 논리식을 만들기는 가능하다.
!(~(-1)==1) : false 부정이므로 출력된다.
출력

만약에 if ~A|B을 해본다면?

10. 역링크 등 기타 테스트[편집]

If true 틀:토론 include
이 문서와 관련하여 에 대한
이 문서에서
토론이 진행되고 있습니다.
If false 틀:폐쇄 include

출력이 되지 않는 틀은 역링크를 조회해보면 include로 역링크가 걸리지 않는다.

출력이 되지 않는 분류로는 해당 문서가 포함되지 않는다.

If true ##@
If false ##@
##@ 테스트. If 문구 사이에 ##@를 끼워넣어도 편집창 상단 표시에 출력되어 나온다.


출력되지 않는 점을 이용하면 ##주석 못지 않게 활용할 수 있을 듯하다.

지수의 지수의 지수
2
22
=16
: 출력된다.
출력

2
22
=15
로 하면 출력되지 않는다.

지수의 지수의 지수의 지수
2
2
22
=216=65536
: 출력된다.
출력

2
2
22
=216=65535
: 출력되지 않는다.

(112)2=1\left(1^{{1}\over{2}}\right)^{2}=1
출력

((1)12)2=1\left((-1)^{{1}\over{2}}\right)^{2}=-1 : 허수는 불가능한 모양.

11. 메모[편집]

If 조건문에 함수를 넣을 수 있을까?
예 : dday를 넣어서 누구누구 운영자가 재직 며칠이 되었음을 적을 수 있음.

12. 결론[편집]

{{
{#!if
(논리식)

(true이면 출력할 내용)
}}
}
추정되는 문법
If구문은 고장난 구문(문법)은 아니지만, 잠수함 패치로 인해 변수를 연결할 수 있는 입력방법을 찾아야 한다. 조건부에 텍스트값, 숫자값, 논리값(true 또는 false)은 지원되는 입력으로 보인다. 연산할 값의 종류와 연산하여 나오는 값의 종류에 알맞은 기호만 쓴다면 크게 원하는 방향에서 벗어나지 않게 쓸 수 있다.
[1] 지수가 아니라 프로그래밍 전용 연산