r41
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----
r41
12if true 1 (정의되지 않는 #!(Shebang) 구문(문법)이면 리터럴로 출력되어야 하겠으나 if는 그렇지 않다.)
r1
13{{{#!if true
r41
141 (true는 출력된다.)}}}
r1
15----
16if false 1
17{{{#!if false
r41
181 (false는 출력되지 않는다.)}}}
r24
19== 매개변수 테스트 ==
r22
20[include(틀:상세 내용, 설명대상=매개변수 대상, 문서명=테스트:If문법/include 대상)]
21[include(틀:상세 내용, 설명대상=매개변수 대상의 include 테스트 결과, 문서명=테스트:If문법/include 결과)]
r24
22== |기호 테스트 ==
r35
23=== 논리식 ===
r1
24|기호 테스트 (둘 다 true)
25{{{#!if (1==1)|(1==0)
r24
26출력 (| 기호)}}}
r1
27----
28|기호 테스트 (둘 중 한 쪽 false)
29{{{#!if (1==2)|(2==2)
r24
30출력 (| 기호)}}}
r1
31----
32|기호 테스트 (둘 다 false)
33{{{#!if (1==2)|(1==0)
r24
34출력 (| 기호)}}}
r23
35----
r41
36true | true : 출력된다.
r23
37{{{#!if true | true
r24
38출력(| 기호)}}}
r23
39----
r41
40true | false : 출력된다.
r23
41{{{#!if true | false
r24
42출력 (| 기호)}}}
r23
43----
r41
44false | true : 출력된다.
r23
45{{{#!if false | true
r24
46출력 (| 기호)}}}
r23
47----
r41
48false | false : 출력되지 않는다.
r23
49{{{#!if false | false
r24
50출력 (| 기호)}}}
51----
52결론 : | 기호는 논리연산 OR
r35
53=== 비트 연산 ===
r34
542진수 비트합으로 처리되는 것은, true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로
r33
55|| || case1 || case2 || case3 || case4 ||
56|| A || 1 || 1 || 0 || 0 ||
57|| B || 1 || 0 || 1 || 0 ||
58|| A|B || 1 || 1 || 1 || 0 ||
r41
59표와 같이 처리된다. (1을 true, 0을 false 놓고 보면 | 연산 결과가 같다.)
r33
60
r41
61그래서 이진법도 각 자릿수별로 | 연산 비교가 가능한 것으로 보인다.
62가령 5|3을 보자면 이진법으로 변환한 값의 각 자릿수에 따라 연산이 된다.
r33
63|| 10진수 || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ ||
64|| 5 = || 1 || 0 || 1 ||
65|| 3 = || 0 || 1 || 1 ||
66|| (5|3) = 7 || 1 || 1 || 1 ||
67----
r41
68(5|3)=7 테스트 : 출력된다.
r33
69{{{#!if (5|3) ==7
70출력}}}
71----
r41
72(5|3)=6 테스트 : 출력되지 않는다.
r33
73{{{#!if (5|3) ==6
74출력}}}
r41
75그래서 (5|3)=7 을 조건부로 둔 if 구문(문법)을 걸어놓으면 true로 동작되는 것으로 보인다.
r33
76----
77(9|5)=13 테스트
78{{{#!if (9|5) ==13
79출력 (1101)}}}
80----
r41
81(9|5)=12 테스트 : 일(2^^^0^^^)의 자릿수가 틀려서 출력되지 않는다.
r33
82{{{#!if (9|5) ==12
83출력 (1101)}}}
r35
84---만약에i ~A|B을 해본다면---
r24
85== & 기호 테스트 ==
r41
86&기호 테스트 (한 쪽 false) : 출력되지 않는다.
r1
87{{{#!if (1==1)&(1==0)
r24
88출력 (& 기호)}}}
r1
89----
r41
90&기호 테스트 (한 쪽 false) : 출력되지 않는다.
r1
91{{{#!if (1==0)&(3==3)
r24
92출력 (& 기호)}}}
r1
93----
r41
94& 기호 테스트 (둘 다 true) : 출력된다.
r1
95{{{#!if (1==1)&(0==0)
r24
96출력 (& 기호)}}}
r23
97----
r41
98true & true : 출력된다.
r23
99{{{#!if true & true
r24
100출력 (& 기호)}}}
r23
101----
r41
102true & false : 출력되지 않는다.
r23
103{{{#!if true & false
r24
104출력 (& 기호)}}}
r23
105----
r41
106false & true : 출력되지 않는다.
r23
107{{{#!if false & true
r24
108출력 (& 기호)}}}
r23
109----
r41
110false & false : 출력되지 않는다.
r23
111{{{#!if false & false
r24
112출력 (& 기호)}}}
113----
114결론 : & 기호는 논리연산 AND
115== 부등호 테스트 ==
r41
116연산 테스트 (음수도 읽는 모양이다.)
r1
117{{{#!if (1<2)&(2>=-3)
r24
118출력 (연산 테스트)}}}
r1
119----
r41
120geq('''g'''reater than or '''eq'''ual to)를 >=로 입력 안 하고 =>로 입력하면 깨진다.
r1
121{{{#!if (1<2)&(2=>-3)
r24
122출력 (연산 테스트)}}}
r1
123----
r41
124geq 동작 가능 인증 (if 1>=1 걸면 true로 나온다.)
r8
125{{{#!if (1>=1)
r24
126출력 (연산 테스트)}}}
r1
127----
r41
128leq('''l'''ess than or '''eq'''ual to)를 <=로 입력 안 하고 =<로 입력하면 깨진다.
r8
129{{{#!if -100=<99
r24
130출력 (연산 테스트)}}}
r1
131----
r41
132leq(<=) 로 해도 나오지 않다가 ---잠수함 패치로--- fix된 모양이다.
r8
133{{{#!if -100<=99
r24
134출력 (연산 테스트)}}}
r8
135----
r41
136leq 동작 가능 인증 (if 1<=1 걸면 true로 나온다.)
r8
137{{{#!if (1<=1)
r24
138출력 (연산 테스트)}}}
r8
139----
r1
140< and >=
141{{{#!if (-100<-99)&(-98>=-99)
r24
142출력 (연산 테스트)}}}
r1
143----
r41
144\> 부등호도 가능하다.
r1
145{{{#!if 10>9
r24
146출력 (연산 테스트)}}}
r1
147----
148(true and true) or (false and true)
149{{{#!if ((4==4)&(-2>-3))|((1>0)&(2<4))
r24
150출력 (연산 테스트)}}}
r9
151----
r41
152* (times) 기호 : 출력된다.
r9
153{{{#!if 2*3==6
r24
154출력 (연산 테스트)}}}
r9
155----
r41
156* 식 을 틀리게 만들면 출력되지 않는다. (따라서 *는 지원되는 모양이다.)
r12
157{{{#!if 2*3==5
r24
158출력 (연산 테스트)}}}
r12
159----
r9
160/ (devided by)
161{{{#!if 10/5==2
r24
162출력 (연산 테스트)}}}
r10
163----
r41
164/ 식을 틀리게 만들면 나오지 않는다. (따라서 /는 지원되는 모양이다.)
r12
165{{{#!if 10/5==1
r24
166출력 (연산 테스트)}}}
r25
167----
r41
168결론 : * / > >= < <= 연산기호는 지원되는 모양이다.
r24
169== ^ 기호 테스트 ==
170^ (exponent?)
r10
171{{{#!if 10^4==10000
r24
172출력 (^기호)}}}
r11
173----
174^(1/2)
175{{{#!if 1024^(1/2)==32
r24
176출력 (^기호)}}}
r12
177----
r41
178^ 틀리게 해도 나오는 것으로 봐서는 지원되지 않는 모양이다?[* 지수가 아니라 프로그래밍 전용 연산]
r12
179{{{#!if 10^4==9999
r24
180출력 (^기호)}}}
181----
r41
182true ^ true : 출력되지 않는다.
r24
183{{{#!if true ^ true
184출력 (^ 기호)}}}
185----
r41
186true ^ false : 출력된다.
r24
187{{{#!if true ^ false
188출력 (^ 기호)}}}
189----
r41
190false ^ true : 출력된다.
r24
191{{{#!if false ^ true
192출력 (^ 기호)}}}
193----
r41
194false & false : 출력되지 않는다.
r24
195{{{#!if false ^ false
196출력 (^ 기호)}}}
197----
r25
198결론 : ^는 논리연산 XOR
199---그럼 XAND도 있을텐데---
r27
200== !기호 테스트 ==
r41
201false == false : 출력된다.
r27
202{{{#!if false==false
203출력 (f=f)}}}
204----
r41
205false == true : 출력되지 않는다.
r27
206{{{#!if false==true
207출력 (f=f)}}}
208----
r41
209false != true : 출력된다.
r27
210{{{#!if false != true
211출력 (!= 기호)}}}
212----
r41
2131!=0 : 출력된다.
r27
214{{{#!if 1!=0
215출력 (1!=0)}}}
216----
r41
2171 !=0 : 출력된다.
r28
218{{{#!if 1 !=0
219출력 (1 !=0)}}}
220----
r41
2211 !==0 : 출력되지 않는다.
r28
222{{{#!if 1 !==0
223출력 (1!==0)}}}
224----
r41
2251<0 : 출력되지 않는다.
r28
226{{{#!if 1<0
227출력 (1<0)}}}
228----
r41
2291 !< 0 : 출력되지 않는다.
r28
230{{{#!if 1 !< 0
231출력 (1!< 0)}}}
232----
r41
2331 !(<) 0 : 출력되지 않는다. 부등호에 걸 수 있는 기호가 아니라서 깨진 모양이다.
r32
234{{{#!if 1 !(<) 0
235출력 (1!(<) 0)}}}
236----
r41
237!(1<0) : 출력된다.
r28
238{{{#!if !(1<0)
239출력 !(1<0)}}}
240----
r41
241!(true and true) : 출력되지 않는다.
r27
242{{{#!if !(true&true)
243출력 !(t&t)}}}
244----
r41
245!(true and false) : 출력된다.
r27
246{{{#!if !(true&false)
247출력 !(t&f)}}}
248----
r41
249!(false and false) : 출력된다.
r27
250{{{#!if !(false&false)
251출력 !(f&f)}}}
r41
252그냥 and 식 전체에 ! 씌우면 nand가 된다.
r28
253----
r29
254!(true ^ true)
255{{{#!if !(true^true)
256출력 !(t^t)}}}
257----
258!(true ^ false)
259{{{#!if !(true^false)
260출력 !(t^f)}}}
261----
262!(false ^ true)
263{{{#!if !(false^true)
264출력 !(f^t)}}}
265----
r28
266!(false ^ false)
267{{{#!if !(false^false)
268출력 !(f^f)}}}
r31
269그냥 ^ 식 전체에 ! 씌우면 xand(nxor)이다.
270----
r41
271!(!true) : 출력된다 (not of not)
r31
272{{{#!if !(!true)
273출력 !(!t)}}}
274----
r41
275!!true : 출력되지 않는다. !는 범위를 입력해줘야 동작되는 모양.
r31
276{{{#!if !!true)
277출력 (!!t)}}}
278----
r41
279not of not of not of true : 출력되지 않는다.
r31
280{{{#!if !(!(!true))
281출력 !(!(!t))}}}
282----
r41
283not of not of not of not of true ---사각형안의사각형안의--- : 출력된다.
r31
284{{{#!if !(!(!(!true)))
285출력 !(!(!(!t)))}}}
286----
287결론 : !는 논리연산 NOT이고, 범위를 지정해줘야 동작된다.
r36
288
r37
289== ~기호 테스트 ==
r41
290~false : 출력된다.
r36
291{{{#!if ~false
r38
292출력 ~f}}}
r37
293----
r41
294~(~true) : 출력된다.
r37
295{{{#!if ~(~true)
296출력 ~(~t)}}}
297----
r41
298~(!(~(!true))) : 출력된다.
r37
299{{{#!if ~(!(~(!true)))
300출력 ~(!(~(!t)))}}}
301----
r41
302~true : 출력된다.
r37
303{{{#!if ~true
304출력 ~t}}}
305----
r41
306~(true) : 출력된다.
r37
307{{{#!if ~(true)
308출력 ~(t)}}}
309----
r41
310(~true) : 출력된다.
r38
311{{{#!if (~true)
312출력 (~t)}}}
313----
r41
314~~true : 출력된다.
r37
315{{{#!if ~~true
316출력 ~~t}}}
317----
r41
318~(-1)=0 : 출력된다.
r38
319{{{#!if ~(-1)==0
320출력}}}
321----
r41
322~(-1)=1 : 출력되지 않는다.
r38
323{{{#!if ~(-1)==1
324출력}}}
325----
r41
326~(-2)=1 : 출력된다.
r39
327{{{#!if ~(-2)==1
328출력}}}
329----
r41
330~false=false : 출력되지 않는다.
r38
331{{{#!if ~false==false
332출력}}}
333----
r41
334~false=true : 출력되지 않는다.
r38
335{{{#!if ~false==true
336출력}}}
337----
r41
338~(!(true))=false : 출력되지 않는다.
r38
339{{{#!if ~(!true)==false
340출력}}}
341----
r41
342결론 : ~ 기호는 논리 연산으로는 동작되지 않는다.
r40
343
344다만 위의 ~(-1)==1 을 가져와서 비트 연산이 참인지 거짓인지 나오는 결과를 두고 논리식을 만들기는 가능하다.
r41
345!(~(-1)==1) : false 부정이므로 출력된다.
r40
346{{{#!if !(~(-1)==1)
347출력}}}
r24
348== 역링크 등 기타 테스트 ==
r15
349||If true [[틀:토론]] include[br]{{{#!if true
350[include(틀:토론)]}}}||
351||If false [[틀:폐쇄]] include[br]
r13
352{{{#!if false
r15
353[include(틀:폐쇄)]}}}||
354출력이 되지 않는 틀은 역링크를 조회해보면 include로 역링크가 걸리지 않는다.
r13
355----
r15
356||If true [[:분류:나무마크 문법|분류:나무마크 문법]][br]{{{#!if true
357[[분류:나무마크 문법]]}}}||
358||If false [[:분류:위키]][br]{{{#!if false
359[[분류:위키]]}}}||
r16
360출력이 되지 않는 분류로는 해당 문서가 포함되지 않는다.
r17
361----
362||If true \#\#\@[br]{{{#!if true
r18
363##@if true
r17
364}}}||
365||If false \#\#\@[br]{{{#!if false
r18
366##@if false
r17
367}}}||
r18
368\#\#\@ 테스트. If 문구 사이에 \#\#\@를 끼워넣어도 편집창 상단 표시에 출력되어 나온다.
r17
369----
370{{{#!if false
371이 내용은 false라서 나오지 않습니다.
372예시 :
373토론 합의 내용
374 * 문서명(표제어)을 A로 정한다. (/threadslug1 토론 합의)
375 * 문서의 B 서술을 존치한다. (/threadslug2 토론 합의)
376 * 문서의 C 서술을 삭제한다. (/threadslug3 토론 합의)
377}}}
r41
378출력되지 않는 점을 이용하면 [[\#\#주석]] 못지 않게 활용할 수 있을 듯하다.
r24
379----
r26
380== 메모 ==
381If 조건문에 함수를 넣을 수 있을까?
382예 : dday를 넣어서 누구누구 운영자가 재직 며칠이 되었음을 적을 수 있음.
r1
383== 결론 ==
384||{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
385{{{ {{}}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
386{{{{#!if }}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
387{{{#blue {{{(논리식)}}}}}}}}}
388{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
389{{{#green {{{(true이면 출력할 내용)}}}}}}}}}{{{#!wiki style="margin: 0 -0.625em 0 -0.25em; display: inline;"
390{{{}} }}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
391{{{} }}}}}}||
392|| 추정되는 문법 ||
r41
393If구문은 고장난 구문(문법)은 아니지만, ---잠수함 패치로 인해--- 변수를 연결할 수 있는 입력방법을 찾아야 한다. 조건부에 텍스트값, 숫자값, 논리값(true 또는 false)은 지원되는 입력으로 보인다. 연산할 값의 종류와 연산하여 나오는 값의 종류에 알맞은 기호만 쓴다면 크게 원하는 방향에서 벗어나지 않게 쓸 수 있다.