r37
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== |기호 테스트 ==
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----
36true | true : 출력됨
37{{{#!if true | true
r24
38출력(| 기호)}}}
r23
39----
40true | false : 출력됨
41{{{#!if true | false
r24
42출력 (| 기호)}}}
r23
43----
44false | true : 출력됨
45{{{#!if false | true
r24
46출력 (| 기호)}}}
r23
47----
48false | false : 출력되지 않음
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 ||
59표와 같이 처리됩니다. (1을 true, 0을 false 놓고 보면 | 연산 결과가 같습니다.)
60
r35
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----
68(5|3)=7 테스트 : 출력
69{{{#!if (5|3) ==7
70출력}}}
71----
72(5|3)=6 테스트 : 출력되지 않음.
73{{{#!if (5|3) ==6
74출력}}}
75그래서 (5|3)=7 을 조건부로 둔 if 구문(문법)을 걸어놓으면 true로 동작되는 것으로 생각합니다.
76----
77(9|5)=13 테스트
78{{{#!if (9|5) ==13
79출력 (1101)}}}
80----
81(9|5)=12 테스트 : 일(2^^^0^^^)의 자릿수가 틀려서 출력되지 않음.
82{{{#!if (9|5) ==12
83출력 (1101)}}}
r35
84---만약에i ~A|B을 해본다면---
r24
85== & 기호 테스트 ==
r1
86&기호 테스트 (한 쪽 false)
87{{{#!if (1==1)&(1==0)
r24
88출력 (& 기호)}}}
r1
89----
90&기호 테스트 (한 쪽 false)
91{{{#!if (1==0)&(3==3)
r24
92출력 (& 기호)}}}
r1
93----
94& 기호 테스트 (둘 다 true)
95{{{#!if (1==1)&(0==0)
r24
96출력 (& 기호)}}}
r23
97----
98true & true : 출력됨
99{{{#!if true & true
r24
100출력 (& 기호)}}}
r23
101----
102true & false : 출력되지 않음
103{{{#!if true & false
r24
104출력 (& 기호)}}}
r23
105----
106false & true : 출력되지 않음
107{{{#!if false & true
r24
108출력 (& 기호)}}}
r23
109----
110false & false : 출력되지 않음
111{{{#!if false & false
r24
112출력 (& 기호)}}}
113----
114결론 : & 기호는 논리연산 AND
115== 부등호 테스트 ==
r1
116연산 테스트 (음수도 읽는 모양)
117{{{#!if (1<2)&(2>=-3)
r24
118출력 (연산 테스트)}}}
r1
119----
r8
120geq('''g'''reater than or '''eq'''ual to)를 >=로 입력 안 하고 =>로 입력하면 깨짐
r1
121{{{#!if (1<2)&(2=>-3)
r24
122출력 (연산 테스트)}}}
r1
123----
r8
124geq 동작 가능 인증 (if 1>=1 걸면 true로 나옴)
125{{{#!if (1>=1)
r24
126출력 (연산 테스트)}}}
r1
127----
r8
128leq('''l'''ess than or '''eq'''ual to)를 <=로 입력 안 하고 =<로 입력하면 깨짐
129{{{#!if -100=<99
r24
130출력 (연산 테스트)}}}
r1
131----
r8
132leq(<=) 로 해도 나오지 않다가 fix된듯.
133{{{#!if -100<=99
r24
134출력 (연산 테스트)}}}
r8
135----
136leq 동작 가능 인증 (if 1<=1 걸면 true로 나옴)
137{{{#!if (1<=1)
r24
138출력 (연산 테스트)}}}
r8
139----
r1
140< and >=
141{{{#!if (-100<-99)&(-98>=-99)
r24
142출력 (연산 테스트)}}}
r1
143----
144\> 가능
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----
152* (times) 기호
153{{{#!if 2*3==6
r24
154출력 (연산 테스트)}}}
r9
155----
r12
156* 식 을 틀리게 만들면 나오지 않음. (*는 지원되는 모양)
157{{{#!if 2*3==5
r24
158출력 (연산 테스트)}}}
r12
159----
r9
160/ (devided by)
161{{{#!if 10/5==2
r24
162출력 (연산 테스트)}}}
r10
163----
r12
164/ 식을 틀리게 만들면 나오지 않음. (/는 지원되는 모양)
165{{{#!if 10/5==1
r24
166출력 (연산 테스트)}}}
r25
167----
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----
r23
178^ 틀리게 해도 나오는 것으로 봐서는 지원되지 않는듯[* 지수가 아니라 프로그래밍 전용 연산]
r12
179{{{#!if 10^4==9999
r24
180출력 (^기호)}}}
181----
182true ^ true : 출력되지 않음
183{{{#!if true ^ true
184출력 (^ 기호)}}}
185----
186true ^ false : 출력됨
187{{{#!if true ^ false
188출력 (^ 기호)}}}
189----
190false ^ true : 출력됨
191{{{#!if false ^ true
192출력 (^ 기호)}}}
193----
194false & false : 출력되지 않음
195{{{#!if false ^ false
196출력 (^ 기호)}}}
197----
r25
198결론 : ^는 논리연산 XOR
199---그럼 XAND도 있을텐데---
r27
200== !기호 테스트 ==
201false == false : 출력됨
202{{{#!if false==false
203출력 (f=f)}}}
204----
205false == true : 출력되지 않음
206{{{#!if false==true
207출력 (f=f)}}}
208----
209false != true : 출력됨
210{{{#!if false != true
211출력 (!= 기호)}}}
212----
2131!=0 : 출력됨
214{{{#!if 1!=0
215출력 (1!=0)}}}
216----
r28
2171 !=0 : 출력됨
218{{{#!if 1 !=0
219출력 (1 !=0)}}}
220----
2211 !==0 : 출력되지 않음.
222{{{#!if 1 !==0
223출력 (1!==0)}}}
224----
2251<0 : 출력되지 않음.
226{{{#!if 1<0
227출력 (1<0)}}}
228----
2291 !< 0 : 출력되지 않음.
230{{{#!if 1 !< 0
231출력 (1!< 0)}}}
232----
r32
2331 !(<) 0 : 출력되지 않음. 부등호에 걸 수 있는 기호가 아니라서 깨진 모양.
234{{{#!if 1 !(<) 0
235출력 (1!(<) 0)}}}
236----
r28
237!(1<0) : 출력됨.
238{{{#!if !(1<0)
239출력 !(1<0)}}}
240----
r27
241!(true and true)
242{{{#!if !(true&true)
243출력 !(t&t)}}}
244----
245!(true and false)
246{{{#!if !(true&false)
247출력 !(t&f)}}}
248----
249!(false and false)
250{{{#!if !(false&false)
251출력 !(f&f)}}}
r31
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----
271!(!true) : 출력됨 (not of not)
272{{{#!if !(!true)
273출력 !(!t)}}}
274----
275!!true : 출력되지 않음. !는 범위를 입력해줘야 동작되는 모양.
276{{{#!if !!true)
277출력 (!!t)}}}
278----
279not of not of not of true
280{{{#!if !(!(!true))
281출력 !(!(!t))}}}
282----
283not of not of not of not of true ---사각형안의사각형안의---
284{{{#!if !(!(!(!true)))
285출력 !(!(!(!t)))}}}
286----
287결론 : !는 논리연산 NOT이고, 범위를 지정해줘야 동작된다.
r36
288
r37
289== ~기호 테스트 ==
290~false
r36
291{{{#!if ~false
292출력 (~f)}}}
r37
293----
294~(~true)
295{{{#!if ~(~true)
296출력 ~(~t)}}}
297----
298~(!(~(!true)))
299{{{#!if ~(!(~(!true)))
300출력 ~(!(~(!t)))}}}
301----
302~true : 출력됨.
303{{{#!if ~true
304출력 ~t}}}
305----
306~(true) : 출력됨.
307{{{#!if ~(true)
308출력 ~(t)}}}
309----
310~~true : 출력됨.
311{{{#!if ~~true
312출력 ~~t}}}
313----
314~는 논리에서 동작되지 않는 모양.
r24
315== 역링크 등 기타 테스트 ==
r15
316||If true [[틀:토론]] include[br]{{{#!if true
317[include(틀:토론)]}}}||
318||If false [[틀:폐쇄]] include[br]
r13
319{{{#!if false
r15
320[include(틀:폐쇄)]}}}||
321출력이 되지 않는 틀은 역링크를 조회해보면 include로 역링크가 걸리지 않는다.
r13
322----
r15
323||If true [[:분류:나무마크 문법|분류:나무마크 문법]][br]{{{#!if true
324[[분류:나무마크 문법]]}}}||
325||If false [[:분류:위키]][br]{{{#!if false
326[[분류:위키]]}}}||
r16
327출력이 되지 않는 분류로는 해당 문서가 포함되지 않는다.
r17
328----
329||If true \#\#\@[br]{{{#!if true
r18
330##@if true
r17
331}}}||
332||If false \#\#\@[br]{{{#!if false
r18
333##@if false
r17
334}}}||
r18
335\#\#\@ 테스트. If 문구 사이에 \#\#\@를 끼워넣어도 편집창 상단 표시에 출력되어 나온다.
r17
336----
337{{{#!if false
338이 내용은 false라서 나오지 않습니다.
339예시 :
340토론 합의 내용
341 * 문서명(표제어)을 A로 정한다. (/threadslug1 토론 합의)
342 * 문서의 B 서술을 존치한다. (/threadslug2 토론 합의)
343 * 문서의 C 서술을 삭제한다. (/threadslug3 토론 합의)
344}}}
345출력되지 않는 점을 이용하면 [[\#\#주석]] 못지 않게 활용할 수 있을 듯.
r24
346----
r26
347== 메모 ==
348If 조건문에 함수를 넣을 수 있을까?
349예 : dday를 넣어서 누구누구 운영자가 재직 며칠이 되었음을 적을 수 있음.
r1
350== 결론 ==
351||{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
352{{{ {{}}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
353{{{{#!if }}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
354{{{#blue {{{(논리식)}}}}}}}}}
355{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
356{{{#green {{{(true이면 출력할 내용)}}}}}}}}}{{{#!wiki style="margin: 0 -0.625em 0 -0.25em; display: inline;"
357{{{}} }}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;"
358{{{} }}}}}}||
359|| 추정되는 문법 ||
r3
360If구문 고장나지는 않았지만, ---잠수함 패치로 인해--- 변수를 연결할 수 있는 입력방법을 찾아야 할 것으로 보입니다.