r34
r1
1[[분류:테스트]]
2[목차]
r24
3== 개요 ==
r30
4[[https://namu.wiki/w/%EB%82%98%EB%AC%B4%EC%9C%84%ED%82%A4:%EB%AC%B8%EB%B2%95%20%EB%8F%84%EC%9B%80%EB%A7%90/%EC%8B%AC%ED%99%94#if|나무위키:문법 도움말/심화 문서의 if 문단]]도 참고.
5
r24
6if 구문 테스트.
r1
7RAW(원문) 참조.
r24
8== true, false ==
r1
9{{{#!undefined_command @a@==1
101}}}
11----
r4
12if true 1 (정의되지 않는 #!(Shebang) 구문(문법)이면 리터럴로 출력되어야 하겠으나 if는 그렇지 않음)
r1
13{{{#!if true
141 (true 출력)}}}
15----
16if false 1
17{{{#!if false
181 (false 출력되지 않음)}}}
r24
19== 매개변수 테스트 ==
r22
20[include(틀:상세 내용, 설명대상=매개변수 대상, 문서명=테스트:If문법/include 대상)]
21[include(틀:상세 내용, 설명대상=매개변수 대상의 include 테스트 결과, 문서명=테스트:If문법/include 결과)]
r24
22== |기호 테스트 ==
r1
23|기호 테스트 (둘 다 true)
24{{{#!if (1==1)|(1==0)
r24
25출력 (| 기호)}}}
r1
26----
27|기호 테스트 (둘 중 한 쪽 false)
28{{{#!if (1==2)|(2==2)
r24
29출력 (| 기호)}}}
r1
30----
31|기호 테스트 (둘 다 false)
32{{{#!if (1==2)|(1==0)
r24
33출력 (| 기호)}}}
r23
34----
35true | true : 출력됨
36{{{#!if true | true
r24
37출력(| 기호)}}}
r23
38----
39true | false : 출력됨
40{{{#!if true | false
r24
41출력 (| 기호)}}}
r23
42----
43false | true : 출력됨
44{{{#!if false | true
r24
45출력 (| 기호)}}}
r23
46----
47false | false : 출력되지 않음
48{{{#!if false | false
r24
49출력 (| 기호)}}}
50----
51결론 : | 기호는 논리연산 OR
r33
52
r34
532진수 비트합으로 처리되는 것은, true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로
r33
54|| || case1 || case2 || case3 || case4 ||
55|| A || 1 || 1 || 0 || 0 ||
56|| B || 1 || 0 || 1 || 0 ||
57|| A|B || 1 || 1 || 1 || 0 ||
58표와 같이 처리됩니다. (1을 true, 0을 false 놓고 보면 | 연산 결과가 같습니다.)
59
60그래서 이진법도 2진법의 각 자릿수에 | 연산 비교가 가능하다고 생각합니다.
61가령 5|3을 보자면 2진법의 각 자릿수에 따라 연산이 됩니다.
62|| 10진수 || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
63|| 5 = || 1 || 0 || 1 ||
64|| 3 = || 0 || 1 || 1 ||
65|| (5|3) = 7 || 1 || 1 || 1 ||
66----
67(5|3)=7 테스트 : 출력
68{{{#!if (5|3) ==7
69출력}}}
70----
71(5|3)=6 테스트 : 출력되지 않음.
72{{{#!if (5|3) ==6
73출력}}}
74그래서 (5|3)=7 을 조건부로 둔 if 구문(문법)을 걸어놓으면 true로 동작되는 것으로 생각합니다.
75----
76(9|5)=13 테스트
77{{{#!if (9|5) ==13
78출력 (1101)}}}
79----
80(9|5)=12 테스트 : 일(2^^^0^^^)의 자릿수가 틀려서 출력되지 않음.
81{{{#!if (9|5) ==12
82출력 (1101)}}}
r24
83== & 기호 테스트 ==
r1
84&기호 테스트 (한 쪽 false)
85{{{#!if (1==1)&(1==0)
r24
86출력 (& 기호)}}}
r1
87----
88&기호 테스트 (한 쪽 false)
89{{{#!if (1==0)&(3==3)
r24
90출력 (& 기호)}}}
r1
91----
92& 기호 테스트 (둘 다 true)
93{{{#!if (1==1)&(0==0)
r24
94출력 (& 기호)}}}
r23
95----
96true & true : 출력됨
97{{{#!if true & true
r24
98출력 (& 기호)}}}
r23
99----
100true & false : 출력되지 않음
101{{{#!if true & false
r24
102출력 (& 기호)}}}
r23
103----
104false & true : 출력되지 않음
105{{{#!if false & true
r24
106출력 (& 기호)}}}
r23
107----
108false & false : 출력되지 않음
109{{{#!if false & false
r24
110출력 (& 기호)}}}
111----
112결론 : & 기호는 논리연산 AND
113== 부등호 테스트 ==
r1
114연산 테스트 (음수도 읽는 모양)
115{{{#!if (1<2)&(2>=-3)
r24
116출력 (연산 테스트)}}}
r1
117----
r8
118geq('''g'''reater than or '''eq'''ual to)를 >=로 입력 안 하고 =>로 입력하면 깨짐
r1
119{{{#!if (1<2)&(2=>-3)
r24
120출력 (연산 테스트)}}}
r1
121----
r8
122geq 동작 가능 인증 (if 1>=1 걸면 true로 나옴)
123{{{#!if (1>=1)
r24
124출력 (연산 테스트)}}}
r1
125----
r8
126leq('''l'''ess than or '''eq'''ual to)를 <=로 입력 안 하고 =<로 입력하면 깨짐
127{{{#!if -100=<99
r24
128출력 (연산 테스트)}}}
r1
129----
r8
130leq(<=) 로 해도 나오지 않다가 fix된듯.
131{{{#!if -100<=99
r24
132출력 (연산 테스트)}}}
r8
133----
134leq 동작 가능 인증 (if 1<=1 걸면 true로 나옴)
135{{{#!if (1<=1)
r24
136출력 (연산 테스트)}}}
r8
137----
r1
138< and >=
139{{{#!if (-100<-99)&(-98>=-99)
r24
140출력 (연산 테스트)}}}
r1
141----
142\> 가능
143{{{#!if 10>9
r24
144출력 (연산 테스트)}}}
r1
145----
146(true and true) or (false and true)
147{{{#!if ((4==4)&(-2>-3))|((1>0)&(2<4))
r24
148출력 (연산 테스트)}}}
r9
149----
150* (times) 기호
151{{{#!if 2*3==6
r24
152출력 (연산 테스트)}}}
r9
153----
r12
154* 식 을 틀리게 만들면 나오지 않음. (*는 지원되는 모양)
155{{{#!if 2*3==5
r24
156출력 (연산 테스트)}}}
r12
157----
r9
158/ (devided by)
159{{{#!if 10/5==2
r24
160출력 (연산 테스트)}}}
r10
161----
r12
162/ 식을 틀리게 만들면 나오지 않음. (/는 지원되는 모양)
163{{{#!if 10/5==1
r24
164출력 (연산 테스트)}}}
r25
165----
166결론 : * / > >= < <= 지원되는 모양
r24
167== ^ 기호 테스트 ==
168^ (exponent?)
r10
169{{{#!if 10^4==10000
r24
170출력 (^기호)}}}
r11
171----
172^(1/2)
173{{{#!if 1024^(1/2)==32
r24
174출력 (^기호)}}}
r12
175----
r23
176^ 틀리게 해도 나오는 것으로 봐서는 지원되지 않는듯[* 지수가 아니라 프로그래밍 전용 연산]
r12
177{{{#!if 10^4==9999
r24
178출력 (^기호)}}}
179----
180true ^ true : 출력되지 않음
181{{{#!if true ^ true
182출력 (^ 기호)}}}
183----
184true ^ false : 출력됨
185{{{#!if true ^ false
186출력 (^ 기호)}}}
187----
188false ^ true : 출력됨
189{{{#!if false ^ true
190출력 (^ 기호)}}}
191----
192false & false : 출력되지 않음
193{{{#!if false ^ false
194출력 (^ 기호)}}}
195----
r25
196결론 : ^는 논리연산 XOR
197---그럼 XAND도 있을텐데---
r27
198== !기호 테스트 ==
199false == false : 출력됨
200{{{#!if false==false
201출력 (f=f)}}}
202----
203false == true : 출력되지 않음
204{{{#!if false==true
205출력 (f=f)}}}
206----
207false != true : 출력됨
208{{{#!if false != true
209출력 (!= 기호)}}}
210----
2111!=0 : 출력됨
212{{{#!if 1!=0
213출력 (1!=0)}}}
214----
r28
2151 !=0 : 출력됨
216{{{#!if 1 !=0
217출력 (1 !=0)}}}
218----
2191 !==0 : 출력되지 않음.
220{{{#!if 1 !==0
221출력 (1!==0)}}}
222----
2231<0 : 출력되지 않음.
224{{{#!if 1<0
225출력 (1<0)}}}
226----
2271 !< 0 : 출력되지 않음.
228{{{#!if 1 !< 0
229출력 (1!< 0)}}}
230----
r32
2311 !(<) 0 : 출력되지 않음. 부등호에 걸 수 있는 기호가 아니라서 깨진 모양.
232{{{#!if 1 !(<) 0
233출력 (1!(<) 0)}}}
234----
r28
235!(1<0) : 출력됨.
236{{{#!if !(1<0)
237출력 !(1<0)}}}
238----
r27
239!(true and true)
240{{{#!if !(true&true)
241출력 !(t&t)}}}
242----
243!(true and false)
244{{{#!if !(true&false)
245출력 !(t&f)}}}
246----
247!(false and false)
248{{{#!if !(false&false)
249출력 !(f&f)}}}
r31
250---그냥 and 식 전체에 ! 씌우면 nand이다.---
r28
251----
r29
252!(true ^ true)
253{{{#!if !(true^true)
254출력 !(t^t)}}}
255----
256!(true ^ false)
257{{{#!if !(true^false)
258출력 !(t^f)}}}
259----
260!(false ^ true)
261{{{#!if !(false^true)
262출력 !(f^t)}}}
263----
r28
264!(false ^ false)
265{{{#!if !(false^false)
266출력 !(f^f)}}}
r31
267그냥 ^ 식 전체에 ! 씌우면 xand(nxor)이다.
268----
269!(!true) : 출력됨 (not of not)
270{{{#!if !(!true)
271출력 !(!t)}}}
272----
273!!true : 출력되지 않음. !는 범위를 입력해줘야 동작되는 모양.
274{{{#!if !!true)
275출력 (!!t)}}}
276----
277not of not of not of true
278{{{#!if !(!(!true))
279출력 !(!(!t))}}}
280----
281not of not of not of not of true ---사각형안의사각형안의---
282{{{#!if !(!(!(!true)))
283출력 !(!(!(!t)))}}}
284----
285결론 : !는 논리연산 NOT이고, 범위를 지정해줘야 동작된다.
r24
286== 역링크 등 기타 테스트 ==
r15
287||If true [[틀:토론]] include[br]{{{#!if true
288[include(틀:토론)]}}}||
289||If false [[틀:폐쇄]] include[br]
r13
290{{{#!if false
r15
291[include(틀:폐쇄)]}}}||
292출력이 되지 않는 틀은 역링크를 조회해보면 include로 역링크가 걸리지 않는다.
r13
293----
r15
294||If true [[:분류:나무마크 문법|분류:나무마크 문법]][br]{{{#!if true
295[[분류:나무마크 문법]]}}}||
296||If false [[:분류:위키]][br]{{{#!if false
297[[분류:위키]]}}}||
r16
298출력이 되지 않는 분류로는 해당 문서가 포함되지 않는다.
r17
299----
300||If true \#\#\@[br]{{{#!if true
r18
301##@if true
r17
302}}}||
303||If false \#\#\@[br]{{{#!if false
r18
304##@if false
r17
305}}}||
r18
306\#\#\@ 테스트. If 문구 사이에 \#\#\@를 끼워넣어도 편집창 상단 표시에 출력되어 나온다.
r17
307----
308{{{#!if false
309이 내용은 false라서 나오지 않습니다.
310예시 :
311토론 합의 내용
312 * 문서명(표제어)을 A로 정한다. (/threadslug1 토론 합의)
313 * 문서의 B 서술을 존치한다. (/threadslug2 토론 합의)
314 * 문서의 C 서술을 삭제한다. (/threadslug3 토론 합의)
315}}}
316출력되지 않는 점을 이용하면 [[\#\#주석]] 못지 않게 활용할 수 있을 듯.
r24
317----
r26
318== 메모 ==
319If 조건문에 함수를 넣을 수 있을까?
320예 : dday를 넣어서 누구누구 운영자가 재직 며칠이 되었음을 적을 수 있음.
r1
321== 결론 ==
322||{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
323{{{ {{}}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
324{{{{#!if }}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
325{{{#blue {{{(논리식)}}}}}}}}}
326{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
327{{{#green {{{(true이면 출력할 내용)}}}}}}}}}{{{#!wiki style="margin: 0 -0.625em 0 -0.25em; display: inline;"
328{{{}} }}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
329{{{} }}}}}}||
330|| 추정되는 문법 ||
r3
331If구문 고장나지는 않았지만, ---잠수함 패치로 인해--- 변수를 연결할 수 있는 입력방법을 찾아야 할 것으로 보입니다.