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