r83
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
r81
6if 구문(if 문법) 테스트용 [[위키위키]] 문서.
7편집하거나 검증할 때 RAW(원문)를 참조할 수 있다.
8if 구문은 문서에서만이 아니라 토론 스레드에도 지원된다.
r24
9== true, false ==
r1
10{{{#!undefined_command @a@==1
111}}}
12----
r54
13if true 1 (정의되지 않는 #!(Shebang) 구문(문법)이면 리터럴로 출력되어야 하겠으나 if는 그렇지 않다.[* 다만 아카라이브 채널위키에는 구현되어 있지 않아서 #!if까지 문구로 나온다.])
r1
14{{{#!if true
r41
151 (true는 출력된다.)}}}
r1
16----
17if false 1
18{{{#!if false
r41
191 (false는 출력되지 않는다.)}}}
r63
20
r82
21{{{#orange 결론}}} : true는 논리값 true로 동작된다.
r24
22== 매개변수 테스트 ==
r22
23[include(틀:상세 내용, 설명대상=매개변수 대상, 문서명=테스트:If문법/include 대상)]
24[include(틀:상세 내용, 설명대상=매개변수 대상의 include 테스트 결과, 문서명=테스트:If문법/include 결과)]
r63
25
r53
26== | 기호 테스트 ==
r42
27=== 논리 연산 ===
r53
28| 기호 테스트 (둘 다 true)
r1
29{{{#!if (1==1)|(1==0)
r24
30출력 (| 기호)}}}
r1
31----
r53
32| 기호 테스트 (둘 중 한 쪽 false)
r1
33{{{#!if (1==2)|(2==2)
r24
34출력 (| 기호)}}}
r1
35----
r53
36| 기호 테스트 (둘 다 false)
r1
37{{{#!if (1==2)|(1==0)
r24
38출력 (| 기호)}}}
r23
39----
r41
40true | true : 출력된다.
r23
41{{{#!if true | true
r24
42출력(| 기호)}}}
r23
43----
r41
44true | false : 출력된다.
r23
45{{{#!if true | false
r24
46출력 (| 기호)}}}
r23
47----
r41
48false | true : 출력된다.
r23
49{{{#!if false | true
r24
50출력 (| 기호)}}}
r23
51----
r41
52false | false : 출력되지 않는다.
r23
53{{{#!if false | false
r24
54출력 (| 기호)}}}
55----
56결론 : | 기호는 논리연산 OR
r42
57
58----
59true || true : 출력된다.
60{{{#!if true || true
61출력 (| 기호)}}}
62----
63true ||| true : 출력되지 않는다.
64{{{#!if true ||| true
65출력 (| 기호)}}}
66
r35
67=== 비트 연산 ===
r42
68| 기호가 2진수 비트합으로도 처리되는 것은, true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로
r33
69|| || case1 || case2 || case3 || case4 ||
70|| A || 1 || 1 || 0 || 0 ||
71|| B || 1 || 0 || 1 || 0 ||
72|| A|B || 1 || 1 || 1 || 0 ||
r42
73표와 같이 처리되기 때문으로 보인다. (1을 true, 0을 false 놓고 보면 | 연산 결과가 같다.)
r33
74
r41
75그래서 이진법도 각 자릿수별로 | 연산 비교가 가능한 것으로 보인다.
76가령 5|3을 보자면 이진법으로 변환한 값의 각 자릿수에 따라 연산이 된다.
r33
77|| 10진수 || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
78|| 5 = || 1 || 0 || 1 ||
79|| 3 = || 0 || 1 || 1 ||
80|| (5|3) = 7 || 1 || 1 || 1 ||
81----
r41
82(5|3)=7 테스트 : 출력된다.
r33
83{{{#!if (5|3) ==7
84출력}}}
85----
r41
86(5|3)=6 테스트 : 출력되지 않는다.
r33
87{{{#!if (5|3) ==6
88출력}}}
r63
89그래서 (5|3)=7 을 조건부로 둔 if 구문(문법)을 걸어 놓으면 true로 동작되는 것으로 보인다.
r33
90----
91(9|5)=13 테스트
r42
92|| 10진수 || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
93|| 9 = || 1 || 0 || 0 || 1 ||
94|| 5 = || 0 || 1 || 0 || 1 ||
95|| (9|5) = 13 || 1 || 1 || 0 || 1 ||
r33
96{{{#!if (9|5) ==13
97출력 (1101)}}}
98----
r41
99(9|5)=12 테스트 : 일(2^^^0^^^)의 자릿수가 틀려서 출력되지 않는다.
r33
100{{{#!if (9|5) ==12
101출력 (1101)}}}
r42
102
r24
103== & 기호 테스트 ==
r42
104=== 논리 연산 ===
r53
105& 기호 테스트 (한 쪽 false) : 출력되지 않는다.
r1
106{{{#!if (1==1)&(1==0)
r24
107출력 (& 기호)}}}
r1
108----
r53
109& 기호 테스트 (한 쪽 false) : 출력되지 않는다.
r1
110{{{#!if (1==0)&(3==3)
r24
111출력 (& 기호)}}}
r1
112----
r41
113& 기호 테스트 (둘 다 true) : 출력된다.
r1
114{{{#!if (1==1)&(0==0)
r24
115출력 (& 기호)}}}
r23
116----
r41
117true & true : 출력된다.
r23
118{{{#!if true & true
r24
119출력 (& 기호)}}}
r23
120----
r41
121true & false : 출력되지 않는다.
r23
122{{{#!if true & false
r24
123출력 (& 기호)}}}
r23
124----
r41
125false & true : 출력되지 않는다.
r23
126{{{#!if false & true
r24
127출력 (& 기호)}}}
r23
128----
r41
129false & false : 출력되지 않는다.
r23
130{{{#!if false & false
r24
131출력 (& 기호)}}}
132----
r63
133
r82
134{{{#orange 결론}}} : & 기호는 논리연산 AND
135
r42
136=== 비트 연산 ===
137& 기호가 2진수 비트곱으로도 처리되는 것은, |기호와 같이 true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로
138|| || case1 || case2 || case3 || case4 ||
139|| A || 1 || 1 || 0 || 0 ||
140|| B || 1 || 0 || 1 || 0 ||
141|| A&B || 1 || 0 || 0 || 0 ||
r43
142표와 같이 처리되기 때문으로 보인다. (1을 true, 0을 false 놓고 보면 & 연산 결과가 같다.)
r42
143
144----
145|| 10진수 || 2^^^4^^^ || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
146|| 25 || 1 || 1 || 0 || 0 || 1 ||
147|| 19 || 1 || 0 || 0 || 1 || 1 ||
148|| (25&19) = 17 || 1 || 0 || 0 || 0 || 1 ||
149if (25&19)=17 : 출력된다.
150{{{#!if (25&19)==17
151출력}}}
152----
153if (25&19)=19 : 2^^^1^^^의 자릿수가 틀려서 출력되지 않는다.
154{{{#!if (25&19)==19
155출력}}}
156
r43
157----
158|| 10진수 || 2^^^4^^^ || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
159|| 20 || 1 || 0 || 1 || 0 || 0 ||
160|| 11 || 0 || 1 || 0 || 1 || 1 ||
161|| (20&11) = 0 || 0 || 0 || 0 || 0 || 0 ||
162if (20&11)=0
163{{{#!if (20&11)==0
164출력}}}
165----
r63
166
r24
167== 부등호 테스트 ==
r41
168연산 테스트 (음수도 읽는 모양이다.)
r1
169{{{#!if (1<2)&(2>=-3)
r24
170출력 (연산 테스트)}}}
r1
171----
r41
172geq('''g'''reater than or '''eq'''ual to)를 >=로 입력 안 하고 =>로 입력하면 깨진다.
r1
173{{{#!if (1<2)&(2=>-3)
r24
174출력 (연산 테스트)}}}
r1
175----
r41
176geq 동작 가능 인증 (if 1>=1 걸면 true로 나온다.)
r8
177{{{#!if (1>=1)
r24
178출력 (연산 테스트)}}}
r1
179----
r41
180leq('''l'''ess than or '''eq'''ual to)를 <=로 입력 안 하고 =<로 입력하면 깨진다.
r8
181{{{#!if -100=<99
r24
182출력 (연산 테스트)}}}
r1
183----
r41
184leq(<=) 로 해도 나오지 않다가 ---잠수함 패치로--- fix된 모양이다.
r8
185{{{#!if -100<=99
r24
186출력 (연산 테스트)}}}
r8
187----
r41
188leq 동작 가능 인증 (if 1<=1 걸면 true로 나온다.)
r8
189{{{#!if (1<=1)
r24
190출력 (연산 테스트)}}}
r8
191----
r1
192< and >=
193{{{#!if (-100<-99)&(-98>=-99)
r24
194출력 (연산 테스트)}}}
r1
195----
r41
196\> 부등호도 가능하다.
r1
197{{{#!if 10>9
r24
198출력 (연산 테스트)}}}
r1
199----
200(true and true) or (false and true)
201{{{#!if ((4==4)&(-2>-3))|((1>0)&(2<4))
r24
202출력 (연산 테스트)}}}
r9
203----
r41
204* (times) 기호 : 출력된다.
r9
205{{{#!if 2*3==6
r24
206출력 (연산 테스트)}}}
r9
207----
r41
208* 식 을 틀리게 만들면 출력되지 않는다. (따라서 *는 지원되는 모양이다.)
r12
209{{{#!if 2*3==5
r24
210출력 (연산 테스트)}}}
r12
211----
r9
212/ (devided by)
213{{{#!if 10/5==2
r24
214출력 (연산 테스트)}}}
r10
215----
r41
216/ 식을 틀리게 만들면 나오지 않는다. (따라서 /는 지원되는 모양이다.)
r12
217{{{#!if 10/5==1
r24
218출력 (연산 테스트)}}}
r25
219----
r82
220{{{#orange 결론}}} : * / > >= < <= 연산기호는 지원되는 모양이다.
r63
221
r24
222== ^ 기호 테스트 ==
r60
223=== 논리 연산 ===
r24
224^ (exponent?)
r10
225{{{#!if 10^4==10000
r24
226출력 (^기호)}}}
r11
227----
228^(1/2)
229{{{#!if 1024^(1/2)==32
r24
230출력 (^기호)}}}
r12
231----
r41
232^ 틀리게 해도 나오는 것으로 봐서는 지원되지 않는 모양이다?[* 지수가 아니라 프로그래밍 전용 연산]
r12
233{{{#!if 10^4==9999
r24
234출력 (^기호)}}}
235----
r41
236true ^ true : 출력되지 않는다.
r24
237{{{#!if true ^ true
238출력 (^ 기호)}}}
239----
r41
240true ^ false : 출력된다.
r24
241{{{#!if true ^ false
242출력 (^ 기호)}}}
243----
r41
244false ^ true : 출력된다.
r24
245{{{#!if false ^ true
246출력 (^ 기호)}}}
247----
r41
248false & false : 출력되지 않는다.
r24
249{{{#!if false ^ false
250출력 (^ 기호)}}}
251----
r63
252A^B==C {{{-2 ([math(A \neq 0,\ B \neq C)])}}}꼴을 if 조건문으로 걸어 놨는데 true가 된 것은, ==를 먼저 연산해서 A^false가 되었는데 A가 0이 아니므로 true로 읽히게 되어 A^false가 true로 반환되서 if 조건문이 true로 되어버린 모양.
r59
2531^2==3 : 1^false가 되어 출력된다.
254{{{#!if 1^2==3
255출력}}}
256----
2571^1==1 : 1^true가 되어 출력되지 않는다.
258{{{#!if 1^1==1
259출력}}}
260----
2610^1==2 : 0^false가 되어 출력되지 않는다.
r58
262{{{#!if 0^1==2
263출력}}}
r59
264----
2650^1==1 : 0^true가 되어 출력된다.
266{{{#!if 0^1==1
267출력}}}
268----
r82
269{{{#orange 결론}}}
270 : ^는 논리연산 XOR
r63
271
r60
272=== 비트 연산 ===
273| 기호, & 기호와 같이 2진법의 각 자릿수별로 계산된다.
274
275|| 10진법 || 2^^^4^^^ || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
276|| 20 || 1 || 0 || 1 || 0 || 0 ||
277|| 11 || 0 || 1 || 0 || 1 || 1 ||
278|| (20^11)=31 || 1 || 1 || 1 || 1 || 1 ||
279(20^11)=31 : 출력된다.
280{{{#!if (20^11)==31
281출력 (20^11)=31}}}
282----
283(20^11)=30 : 2^^^0^^^의 자릿수가 틀려서 출력되지 않는다.
284{{{#!if (20^11)==30
285출력}}}
r66
286-----
287양변에 ^을 걸어도 출력된다.
288|| 10진법 || 2^^^4^^^ || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
289|| 17 || 1 || 0 || 0 || 0 || 1 ||
290|| 14 || 0 || 1 || 1 || 1 || 0 ||
291|| (17^14)=31 || 1 || 1 || 1 || 1 || 1 ||
292(20^11)==(17^14) : 출력된다.
293{{{#!if (20^11)==(17^14)
294출력 }}}
295----
296(20^10)==(17^14) : 2^^^0^^^의 자릿수가 틀려서 출력되지 않는다.
297{{{#!if (20^10)==(17^14)
298출력 }}}
r83
299== ture, false, !기호 테스트 ==
r41
300false == false : 출력된다.
r27
301{{{#!if false==false
302출력 (f=f)}}}
303----
r83
304true == true : 출력된다.
305{{{#!if true==true
306출력 (t=t)}}}
307----
r41
308false == true : 출력되지 않는다.
r27
309{{{#!if false==true
310출력 (f=f)}}}
311----
r41
312false != true : 출력된다.
r27
313{{{#!if false != true
314출력 (!= 기호)}}}
315----
r41
3161!=0 : 출력된다.
r27
317{{{#!if 1!=0
318출력 (1!=0)}}}
319----
r41
3201 !=0 : 출력된다.
r28
321{{{#!if 1 !=0
322출력 (1 !=0)}}}
323----
r41
3241 !==0 : 출력되지 않는다.
r28
325{{{#!if 1 !==0
326출력 (1!==0)}}}
327----
r56
328!(1==0) : 출력된다.
329{{{#!if !(1==0)
330출력 !(1==0)}}}
331----
r41
3321<0 : 출력되지 않는다.
r28
333{{{#!if 1<0
334출력 (1<0)}}}
335----
r41
3361 !< 0 : 출력되지 않는다.
r28
337{{{#!if 1 !< 0
338출력 (1!< 0)}}}
339----
r41
3401 !(<) 0 : 출력되지 않는다. 부등호에 걸 수 있는 기호가 아니라서 깨진 모양이다.
r32
341{{{#!if 1 !(<) 0
342출력 (1!(<) 0)}}}
343----
r41
344!(1<0) : 출력된다.
r28
345{{{#!if !(1<0)
346출력 !(1<0)}}}
347----
r41
348!(true and true) : 출력되지 않는다.
r27
349{{{#!if !(true&true)
350출력 !(t&t)}}}
351----
r41
352!(true and false) : 출력된다.
r27
353{{{#!if !(true&false)
354출력 !(t&f)}}}
355----
r41
356!(false and false) : 출력된다.
r27
357{{{#!if !(false&false)
358출력 !(f&f)}}}
r41
359그냥 and 식 전체에 ! 씌우면 nand가 된다.
r28
360----
r29
361!(true ^ true)
362{{{#!if !(true^true)
363출력 !(t^t)}}}
364----
365!(true ^ false)
366{{{#!if !(true^false)
367출력 !(t^f)}}}
368----
369!(false ^ true)
370{{{#!if !(false^true)
371출력 !(f^t)}}}
372----
r28
373!(false ^ false)
374{{{#!if !(false^false)
375출력 !(f^f)}}}
r31
376그냥 ^ 식 전체에 ! 씌우면 xand(nxor)이다.
377----
r41
378!(!true) : 출력된다 (not of not)
r31
379{{{#!if !(!true)
380출력 !(!t)}}}
381----
r41
382!!true : 출력되지 않는다. !는 범위를 입력해줘야 동작되는 모양.
r31
383{{{#!if !!true)
384출력 (!!t)}}}
385----
r41
386not of not of not of true : 출력되지 않는다.
r31
387{{{#!if !(!(!true))
388출력 !(!(!t))}}}
389----
r41
390not of not of not of not of true ---사각형안의사각형안의--- : 출력된다.
r31
391{{{#!if !(!(!(!true)))
392출력 !(!(!(!t)))}}}
393----
r56
3940 : 진리값 0 (false)으로 읽히는지 출력되지 않는다.
395{{{#!if (0)
396출력}}}
397----
398!(0) : 출력된다.
399{{{#!if !(0)
400출력}}}
401----
4021 : 진리값 1 (true)으로 읽히는지 출력된다.
403{{{#!if (1)
404출력}}}
405----
406!(1) : 출력되지 않는다.
407{{{#!if !(1)
408출력}}}
409----
4102 : 출력된다.
411{{{#!if (2)
412출력}}}
413----
414!(2) : 출력되지 않는다.
415{{{#!if !(2)
416출력}}}
417----
4180.5 : 출력된다.
419{{{#!if (0.5)
420출력}}}
421----
422!(0.5) : 출력되지 않는다.
423{{{#!if !(0.5)
424출력}}}
425----
r82
426{{{#orange 결론}}} : !는 논리연산 NOT이고, 범위를 지정해줘야 동작된다.
r56
427---0만 아니면 될까?---
r36
428
r53
429== ~ 기호 테스트 ==
r41
430~false : 출력된다.
r36
431{{{#!if ~false
r38
432출력 ~f}}}
r37
433----
r41
434~(~true) : 출력된다.
r37
435{{{#!if ~(~true)
436출력 ~(~t)}}}
437----
r41
438~(!(~(!true))) : 출력된다.
r37
439{{{#!if ~(!(~(!true)))
440출력 ~(!(~(!t)))}}}
441----
r41
442~true : 출력된다.
r37
443{{{#!if ~true
444출력 ~t}}}
445----
r41
446~(true) : 출력된다.
r37
447{{{#!if ~(true)
448출력 ~(t)}}}
449----
r41
450(~true) : 출력된다.
r38
451{{{#!if (~true)
452출력 (~t)}}}
453----
r41
454~~true : 출력된다.
r37
455{{{#!if ~~true
456출력 ~~t}}}
457----
r41
458~(-1)=0 : 출력된다.
r38
459{{{#!if ~(-1)==0
460출력}}}
461----
r41
462~(-1)=1 : 출력되지 않는다.
r38
463{{{#!if ~(-1)==1
464출력}}}
465----
r41
466~(-2)=1 : 출력된다.
r39
467{{{#!if ~(-2)==1
468출력}}}
469----
r53
470~(~1)=1 : 출력된다.
471{{{#!if ~(~1)==1
472출력}}}
473----
r41
474~false=false : 출력되지 않는다.
r38
475{{{#!if ~false==false
476출력}}}
477----
r41
478~false=true : 출력되지 않는다.
r38
479{{{#!if ~false==true
480출력}}}
481----
r41
482~(!(true))=false : 출력되지 않는다.
r38
483{{{#!if ~(!true)==false
484출력}}}
485----
r82
486{{{#orange}}} 결론 : ~ 기호는 논리 연산으로는 동작되지 않는다.
r40
487
488다만 위의 ~(-1)==1 을 가져와서 비트 연산이 참인지 거짓인지 나오는 결과를 두고 논리식을 만들기는 가능하다.
r41
489!(~(-1)==1) : false 부정이므로 출력된다.
r40
490{{{#!if !(~(-1)==1)
491출력}}}
r42
492----
493---만약에 if ~A|B을 해본다면?---
494
r48
495== % 기호 테스트 ==
496%는 윈도우즈 계산기 공학용에서 "%키"로도 쓰인다.
r52
497[math(5^2 \equiv 4\ (\bmod 7))] : ---그냥 왼쪽 식은 복잡한 식이고[* {{{#!wiki
498사실 [math(\equiv 11 \equiv 18 \equiv 25 \equiv 32 \equiv \cdots\ (\bmod 7))] 이지만 이 식에서는 오른쪽 수는 0 이상의 정수 가운데서 식을 만족하는 가장 작은 값을 생각한다.[br]물론 다음도 출력된다.
499if 18%7=32%7
500{{{#!if 18%7==32%7
501출력 (18%7=32%7)}}}
502
503여기서 %를 적어놓지 않으면 출력되지 않는다.
504예 : 5**2=11 로만 적어놓으면 출력되지 않는다.
505{{{#!if 5**2%7==11
506출력 (5**2%7=11)}}}}}}] --- 5^^^2^^^=25를 7로 나눈 나머지는 4이다.
r48
507{{{#!if 5**2%7==4
r52
508출력 (5^^^2^^^%7=4)
509----}}}
r48
510----
511식을 틀리게 적으면 출력되지 않는다.
512{{{#!if 5**2%7==3
513출력}}}
r50
514----
r63
515
r82
516== null 과 "" 테스트 ==
517""과 ""은 같다.
518{{{#!if "" == ""
519출력}}}
520----
521Null과 ""은 다르다.
522{{{#!if null == ""
523출력}}}
524----
525null과 null은 같다.
526{{{#!if null==null
527출력}}}
528----
529null과 false는 다르다. (나무위키 도움말에서) if null이면 거짓이므로 출력이 안 되는 것이 아니라, if 조건부 null이 true 논리값으로 나오지 않아서 출력이 안 되는 것이다.
530null=false 테스트 하면 출력되지 않는다.
531{{{#!if null==false
532출력}}}
533----
534null과 true는 다르다. null=true 테스트를 하면 출력되지 않는다.
535{{{#!if null==true
536출력}}}
537
538{{{#orange 결론 1}}} : 호출할 때 {{{#!wiki style="display: inline; font-family: monospace;"
539{{{#skyblue 변수명}}}=}}}이라고 적으면 {{{#skyblue 변수명}}}은 "정의한 값이 없음(null)"이 아니라 "빈 텍스트 값"이 된다.
540{{{#orange 결론 2}}} : true, false는 "정의한 논리값"이므로 null과 다르다.
541
r24
542== 역링크 등 기타 테스트 ==
r15
543||If true [[틀:토론]] include[br]{{{#!if true
544[include(틀:토론)]}}}||
545||If false [[틀:폐쇄]] include[br]
r13
546{{{#!if false
r15
547[include(틀:폐쇄)]}}}||
548출력이 되지 않는 틀은 역링크를 조회해보면 include로 역링크가 걸리지 않는다.
r13
549----
r15
550||If true [[:분류:나무마크 문법|분류:나무마크 문법]][br]{{{#!if true
551[[분류:나무마크 문법]]}}}||
552||If false [[:분류:위키]][br]{{{#!if false
553[[분류:위키]]}}}||
r16
554출력이 되지 않는 분류로는 해당 문서가 포함되지 않는다.
r17
555----
556||If true \#\#\@[br]{{{#!if true
r18
557##@if true
r17
558}}}||
559||If false \#\#\@[br]{{{#!if false
r18
560##@if false
r17
561}}}||
r18
562\#\#\@ 테스트. If 문구 사이에 \#\#\@를 끼워넣어도 편집창 상단 표시에 출력되어 나온다.
r76
563
564||{{{#!wiki style="display:inline;"
565\#\#\@If true
566##@{{{#!if true
567##@if true
568##@}}}
569}}}||
570||{{{#!wiki style="display:inline;"
571\#\#\@If false
572##@{{{#!if false
573##@if false
574##@}}}
575}}}||
576단, \#\#\@ 로 표시되는 공간에 If 구문이 걸리면 true일 때만 출력된다.
r17
577----
578{{{#!if false
579이 내용은 false라서 나오지 않습니다.
580예시 :
581토론 합의 내용
582 * 문서명(표제어)을 A로 정한다. (/threadslug1 토론 합의)
583 * 문서의 B 서술을 존치한다. (/threadslug2 토론 합의)
584 * 문서의 C 서술을 삭제한다. (/threadslug3 토론 합의)
585}}}
r41
586출력되지 않는 점을 이용하면 [[\#\#주석]] 못지 않게 활용할 수 있을 듯하다.
r24
587----
r54
588제곱근
589[math(2\times\sqrt{3}=\sqrt{12})] : 출력된다.
590{{{#!if 2.0*(3.0**0.5)==12.0**0.5
591출력}}}
592----
r55
593다만, 아직까지는 [math(\sqrt{a}\times\sqrt{b}=\sqrt{ab})] 식이 정확히 동작되는지 더 살펴봐야 할듯.
594[math(\sqrt{13}\times\sqrt{10}=\sqrt{130})] : 출력된다.
595{{{#!if (13.0**0.5)*(10.0**0.5)==130.0**0.5
596출력}}}
597----
598[math(\sqrt{13}\times\sqrt{11}=\sqrt{143})] : 출력되지 않는다.
599{{{#!if (13.0**0.5)*(11.0**0.5)==(143.0**0.5)
600출력}}}
601----
r65
602%랑 엮이는 것인가?
603[math(\sqrt{13}\times\sqrt{11} {\color{blue}{\text{\%1000}}} =\sqrt{143} {\color{blue}{\text{\%1000}}})] : 출력된다.
604{{{#!if (13.0**0.5)*(11.0**0.5)%1000==(143.0**0.5)%1000
605출력}}}
606----
r55
607[math(\sqrt{12}\times\sqrt{11}=\sqrt{132})] : 출력된다.
608{{{#!if (12.0**0.5)*(11.0**0.5)==(132.0**0.5)
609출력}}}
610----
611[math(\sqrt{11}\times\sqrt{11}=\sqrt{121})] : 출력된다.
612{{{#!if (11.0**0.5)*(11.0**0.5)==(121.0**0.5)
613출력}}}
614----
r45
615지수의 지수
r63
616{{{+2 2^^^{{{#!wiki style="display: inline"
r44
6172^^^2^^^}}}^^^=16}}} : 출력된다.
618{{{#!if 2.0**(2.0**2.0)==0**1+16
619출력}}}
620----
r63
621{{{+1 2^^^{{{#!wiki style="display: inline"
r44
6222^^^2^^^}}}^^^=15}}}로 하면 출력되지 않는다.
623{{{#!if 2.0**(2.0**2.0)==0**1+15
624출력}}}
625----
r63
626{{{+2 3^^^{{{#!wiki style="display: inline"
r46
6273^^^2^^^}}}^^^=3^^^9^^^=19683}}} : 출력된다.
628{{{#!if 3.0**(3.0**2.0)==0**1+19683
r44
629출력}}}
630----
r63
631{{{+2 3^^^{{{#!wiki style="display: inline"
r46
6323^^^2^^^}}}^^^=3^^^9^^^=19682}}} : 출력되지 않는다.
633{{{#!if 3.0**(3.0**2.0)==0**1+19682
r44
634출력}}}
635----
r45
636지수의 지수의 지수
r63
637{{{+2 2^^^{{{#!wiki style="display: inline"
6382^^^{{{#!wiki style="display: inline"
r45
6392^^^2^^^}}}^^^}}}^^^=2^^^16^^^=65536}}} : 출력된다.
640{{{#!if 2.0**(2.0**(2.0**2.0))==0**1+65536
641출력}}}
642----
r63
643{{{+2 2^^^{{{#!wiki style="display: inline"
6442^^^{{{#!wiki style="display: inline"
r45
6452^^^2^^^}}}^^^}}}^^^=2^^^16^^^=65535}}} : 출력되지 않는다.
646{{{#!if 2.0**(2.0**(2.0**2.0))==0**1+65535
647출력}}}
648----
r63
649무한 지수 탑 함수 테스트를 해볼 겸 지수의 지수의 지수의 지수(...)를 테스트 해볼 수는 있겠지만 적당한 값을 넣어야 한다. 가령 {{{+2 2^^^{{{#!wiki style="display: inline"
6502^^^{{{#!wiki style="display: inline"
6512^^^{{{#!wiki style="display: inline"
r49
6522^^^2^^^}}}^^^}}}^^^}}}^^^}}}를 계산기에서 계산하면 {{{오버플로}}}가 나온다.
653----
r44
654[math(\left(1^{{1}\over{2}}\right)^{2}=1)]
655{{{#!if (1.0**0.5)**2.0==0**1+1
656출력}}}
657----
r45
658[math(\left((-1)^{{1}\over{2}}\right)^{2}=-1)] : [[허수]]는 불가능한 모양이다.
659{{{#!if ((-1.0)**0.5)**2.0==0.0**1.0-1.0
r44
660출력}}}
661
r67
662----
663Zeroization. 자기 자릿수 이상으로 밀어버리면 0이 된다.
6641>>1=0 : 출력된다.
665{{{#!if 1>>1==0
666출력}}}
667----
r69
66842<2^^^6^^^=64이므로 2진법으로 6자리 숫자임을 이용.
r67
66942>>5==1 : 출력된다.
r68
670{{{#!if 42>>5==1
r67
671출력}}}
672----
67342>>5==0 : 42의 2^^^5^^^ 자릿수가 1이었으므로 출력되지 않는다.
r68
674{{{#!if 42>>5==0
r67
675출력}}}
676----
67742>>6==1 : 출력되지 않는다.
678{{{#!if 42>>6==1
679출력}}}
680----
68142>>6==0 : 출력된다.
682{{{#!if 42>>6==0
683출력}}}
684----
68542>>7==0 : 출력된다.
686{{{#!if 42>>7==0
687출력}}}
688----
r69
68942={{{#blue 101}}}010,,,(2),,,
69095={{{#blue 101}}}1111,,,(2),,,
69142>>3==5, 95>>4==5이므로 42>>3==95>>4는 출력된다.
692{{{#!if 42>>3==95>>4
693출력}}}
r78
694
r26
695== 메모 ==
r72
696 * If 조건문에 함수를 넣을 수 있을까?
r77
697예 : dday를 넣어서 누구누구 운영자가 재직 며칠이 되었음을 적을 수 있음, pagecount를 넣어서 이 문서 개수가 몇 개를 돌파했음을 알릴 수 있음, 대문 기념일 틀을 기념일 되기 한참 전에 미리 만들어놓고 if를 걸어놓을 수 있음, 나무위키 공지 틀(고정 주석 문법)에 if를 걸어놓을 수 있음.{{{#!folding 예시 보기, 접기
r70
698{{{#orange 안내 :}}} 지원되지 않는 구문을 가상으로 적은 내용입니다.
r72
699{{{#ABCDEF \{\{\{#!if (\$\$\$dday(2025-xx-xx)\$\$\$>=-1){{{#orange &}}}(\$\$\$dday(2025-xx-xx)\$\$\$<=+1)
r74
700\[include(틀:대문/○○기념일)\][* 서버 시간과 시간대가 달라도 1일 전~1일 후 사이에는 기념일에 맞게 된다.]\}\}\}}}}{{{#00A495 \{\{\{#!if {{{#Red !(}}}(\$\$\$dday(2025-xx-xx)\$\$\$>=-1){{{#orange &}}}(\$\$\$dday(2025-xx-xx)\$\$\$<=+1){{{#Red )}}}
r73
701\}\}\}\[include(틀:대문)\][* 평상시 환영 문구. "○○위키에 오신 것을 환영합니다."]}}}}}}
r70
702-------
r74
703 * 틀의 매개변수명에 관하여
704{{{#!folding 펼치기, 접기
705{{{#orange 안내 :}}} 테스트 필요.
706 1. 매개변수에 입력하면 텍스트가 출력되거나 출력되지 않는 wiki style 구문 전부를 if 구문으로 변환한다. 가령
707 ||\#!wiki style="display:inline; display:{{{#tomato @@_@구버전 매개변수명@}}}=none"||
708 이 있으면
709 ||\#!if {{{#tomato @@_@구버전 매개변수명@}}}!=null||
710 으로 바꾼다.
711 1.#2 신버전과 나란히 입력한다.
712 예 : \{\{\{#!if ({{{#tomato 구버전 매개변수명}}}!=null)^({{{#green 신버전 매개변수명}}}!=null)
713 {{{#tomato @@_@구버전 매개변수명@}}}{{{#green @@_@신버전 매개변수명@}}}\}\}\}
714 1.#3 {{{#green 신버전 매개변수명}}}을 입력해도 틀이 동작된다.
715}}}
r72
716-------
717 * 발전 가능성
r62
718if 가 나왔으니 while, for 등 루프 연산, 그리고 더 나아가서 변수값 재지정, break, continue 등 구문이 나올 수 있어 보인다. 그렇게 나오게 되면 문서는 하나의 스크립트가 될 수 있다. 루프(loop) 연산이 나오게 되면 [[2021년 the seed 엔진 위키 서버 과부하 사건|include 과부하 요청]] 같이 무한히 지속되는 연산 요청을 내지 않도록 시스템에서 의도적으로 루프를 몇 번까지만 반복할 수 있도록 제한을 걸어둘 것으로 보인다.
r63
719
r1
720== 결론 ==
r64
721||{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline; font-family:monospace;"
722\{\{\{#!if {{{#blue (논리식)}}}
r81
723{{{#green (논리식이 true이면 출력할 내용)}}}\}\}\}}}}||
r1
724|| 추정되는 문법 ||
r47
725If구문은 고장난 구문(문법)은 아니지만, ---잠수함 패치로 인해--- 변수를 연결할 수 있는 입력방법을 찾아야 한다. 조건부에 텍스트값, 정수 숫자값, 실수 숫자값, 논리값(true 또는 false)은 지원되는 입력으로 보인다. 연산할 값의 종류와 연산하여 나오는 값의 종류에 알맞은 기호만 쓴다면 원하는 설계에서 크게 벗어나지 않게 이용할 수 있다.