더시드위키
최근 변경
최근 토론
임의 문서
도구
최근 변경
테스트:if문법
(r43 RAW)
[[분류:테스트]] [목차] == 개요 == [[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 문단]]도 참고. if 구문 테스트. RAW(원문) 참조. == true, false == {{{#!undefined_command @a@==1 1}}} ---- if true 1 (정의되지 않는 #!(Shebang) 구문(문법)이면 리터럴로 출력되어야 하겠으나 if는 그렇지 않다.) {{{#!if true 1 (true는 출력된다.)}}} ---- if false 1 {{{#!if false 1 (false는 출력되지 않는다.)}}} == 매개변수 테스트 == [include(틀:상세 내용, 설명대상=매개변수 대상, 문서명=테스트:If문법/include 대상)] [include(틀:상세 내용, 설명대상=매개변수 대상의 include 테스트 결과, 문서명=테스트:If문법/include 결과)] == |기호 테스트 == === 논리 연산 === |기호 테스트 (둘 다 true) {{{#!if (1==1)|(1==0) 출력 (| 기호)}}} ---- |기호 테스트 (둘 중 한 쪽 false) {{{#!if (1==2)|(2==2) 출력 (| 기호)}}} ---- |기호 테스트 (둘 다 false) {{{#!if (1==2)|(1==0) 출력 (| 기호)}}} ---- true | true : 출력된다. {{{#!if true | true 출력(| 기호)}}} ---- true | false : 출력된다. {{{#!if true | false 출력 (| 기호)}}} ---- false | true : 출력된다. {{{#!if false | true 출력 (| 기호)}}} ---- false | false : 출력되지 않는다. {{{#!if false | false 출력 (| 기호)}}} ---- 결론 : | 기호는 논리연산 OR ---- true || true : 출력된다. {{{#!if true || true 출력 (| 기호)}}} ---- true ||| true : 출력되지 않는다. {{{#!if true ||| true 출력 (| 기호)}}} === 비트 연산 === | 기호가 2진수 비트합으로도 처리되는 것은, true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로 || || case1 || case2 || case3 || case4 || || A || 1 || 1 || 0 || 0 || || B || 1 || 0 || 1 || 0 || || A|B || 1 || 1 || 1 || 0 || 표와 같이 처리되기 때문으로 보인다. (1을 true, 0을 false 놓고 보면 | 연산 결과가 같다.) 그래서 이진법도 각 자릿수별로 | 연산 비교가 가능한 것으로 보인다. 가령 5|3을 보자면 이진법으로 변환한 값의 각 자릿수에 따라 연산이 된다. || 10진수 || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ || || 5 = || 1 || 0 || 1 || || 3 = || 0 || 1 || 1 || || (5|3) = 7 || 1 || 1 || 1 || ---- (5|3)=7 테스트 : 출력된다. {{{#!if (5|3) ==7 출력}}} ---- (5|3)=6 테스트 : 출력되지 않는다. {{{#!if (5|3) ==6 출력}}} 그래서 (5|3)=7 을 조건부로 둔 if 구문(문법)을 걸어놓으면 true로 동작되는 것으로 보인다. ---- (9|5)=13 테스트 || 10진수 || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ || || 9 = || 1 || 0 || 0 || 1 || || 5 = || 0 || 1 || 0 || 1 || || (9|5) = 13 || 1 || 1 || 0 || 1 || {{{#!if (9|5) ==13 출력 (1101)}}} ---- (9|5)=12 테스트 : 일(2^^^0^^^)의 자릿수가 틀려서 출력되지 않는다. {{{#!if (9|5) ==12 출력 (1101)}}} == & 기호 테스트 == === 논리 연산 === &기호 테스트 (한 쪽 false) : 출력되지 않는다. {{{#!if (1==1)&(1==0) 출력 (& 기호)}}} ---- &기호 테스트 (한 쪽 false) : 출력되지 않는다. {{{#!if (1==0)&(3==3) 출력 (& 기호)}}} ---- & 기호 테스트 (둘 다 true) : 출력된다. {{{#!if (1==1)&(0==0) 출력 (& 기호)}}} ---- true & true : 출력된다. {{{#!if true & true 출력 (& 기호)}}} ---- true & false : 출력되지 않는다. {{{#!if true & false 출력 (& 기호)}}} ---- false & true : 출력되지 않는다. {{{#!if false & true 출력 (& 기호)}}} ---- false & false : 출력되지 않는다. {{{#!if false & false 출력 (& 기호)}}} ---- 결론 : & 기호는 논리연산 AND === 비트 연산 === & 기호가 2진수 비트곱으로도 처리되는 것은, |기호와 같이 true와 false 진리값이 각각 1, 0인 논리를 시스템상에서 나타내므로 || || case1 || case2 || case3 || case4 || || A || 1 || 1 || 0 || 0 || || B || 1 || 0 || 1 || 0 || || A&B || 1 || 0 || 0 || 0 || 표와 같이 처리되기 때문으로 보인다. (1을 true, 0을 false 놓고 보면 & 연산 결과가 같다.) ---- || 10진수 || 2^^^4^^^ || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ || || 25 || 1 || 1 || 0 || 0 || 1 || || 19 || 1 || 0 || 0 || 1 || 1 || || (25&19) = 17 || 1 || 0 || 0 || 0 || 1 || if (25&19)=17 : 출력된다. {{{#!if (25&19)==17 출력}}} ---- if (25&19)=19 : 2^^^1^^^의 자릿수가 틀려서 출력되지 않는다. {{{#!if (25&19)==19 출력}}} ---- || 10진수 || 2^^^4^^^ || 2^^^3^^^ || 2^^^2^^^ || 2^^^1^^^ || 2^^^0^^^ || || 20 || 1 || 0 || 1 || 0 || 0 || || 11 || 0 || 1 || 0 || 1 || 1 || || (20&11) = 0 || 0 || 0 || 0 || 0 || 0 || if (20&11)=0 {{{#!if (20&11)==0 출력}}} ---- == 부등호 테스트 == 연산 테스트 (음수도 읽는 모양이다.) {{{#!if (1<2)&(2>=-3) 출력 (연산 테스트)}}} ---- geq('''g'''reater than or '''eq'''ual to)를 >=로 입력 안 하고 =>로 입력하면 깨진다. {{{#!if (1<2)&(2=>-3) 출력 (연산 테스트)}}} ---- geq 동작 가능 인증 (if 1>=1 걸면 true로 나온다.) {{{#!if (1>=1) 출력 (연산 테스트)}}} ---- leq('''l'''ess than or '''eq'''ual to)를 <=로 입력 안 하고 =<로 입력하면 깨진다. {{{#!if -100=<99 출력 (연산 테스트)}}} ---- leq(<=) 로 해도 나오지 않다가 ---잠수함 패치로--- fix된 모양이다. {{{#!if -100<=99 출력 (연산 테스트)}}} ---- leq 동작 가능 인증 (if 1<=1 걸면 true로 나온다.) {{{#!if (1<=1) 출력 (연산 테스트)}}} ---- < and >= {{{#!if (-100<-99)&(-98>=-99) 출력 (연산 테스트)}}} ---- \> 부등호도 가능하다. {{{#!if 10>9 출력 (연산 테스트)}}} ---- (true and true) or (false and true) {{{#!if ((4==4)&(-2>-3))|((1>0)&(2<4)) 출력 (연산 테스트)}}} ---- * (times) 기호 : 출력된다. {{{#!if 2*3==6 출력 (연산 테스트)}}} ---- * 식 을 틀리게 만들면 출력되지 않는다. (따라서 *는 지원되는 모양이다.) {{{#!if 2*3==5 출력 (연산 테스트)}}} ---- / (devided by) {{{#!if 10/5==2 출력 (연산 테스트)}}} ---- / 식을 틀리게 만들면 나오지 않는다. (따라서 /는 지원되는 모양이다.) {{{#!if 10/5==1 출력 (연산 테스트)}}} ---- 결론 : * / > >= < <= 연산기호는 지원되는 모양이다. == ^ 기호 테스트 == ^ (exponent?) {{{#!if 10^4==10000 출력 (^기호)}}} ---- ^(1/2) {{{#!if 1024^(1/2)==32 출력 (^기호)}}} ---- ^ 틀리게 해도 나오는 것으로 봐서는 지원되지 않는 모양이다?[* 지수가 아니라 프로그래밍 전용 연산] {{{#!if 10^4==9999 출력 (^기호)}}} ---- true ^ true : 출력되지 않는다. {{{#!if true ^ true 출력 (^ 기호)}}} ---- true ^ false : 출력된다. {{{#!if true ^ false 출력 (^ 기호)}}} ---- false ^ true : 출력된다. {{{#!if false ^ true 출력 (^ 기호)}}} ---- false & false : 출력되지 않는다. {{{#!if false ^ false 출력 (^ 기호)}}} ---- 결론 : ^는 논리연산 XOR ---그럼 XAND도 있을텐데--- == !기호 테스트 == false == false : 출력된다. {{{#!if false==false 출력 (f=f)}}} ---- false == true : 출력되지 않는다. {{{#!if false==true 출력 (f=f)}}} ---- false != true : 출력된다. {{{#!if false != true 출력 (!= 기호)}}} ---- 1!=0 : 출력된다. {{{#!if 1!=0 출력 (1!=0)}}} ---- 1 !=0 : 출력된다. {{{#!if 1 !=0 출력 (1 !=0)}}} ---- 1 !==0 : 출력되지 않는다. {{{#!if 1 !==0 출력 (1!==0)}}} ---- 1<0 : 출력되지 않는다. {{{#!if 1<0 출력 (1<0)}}} ---- 1 !< 0 : 출력되지 않는다. {{{#!if 1 !< 0 출력 (1!< 0)}}} ---- 1 !(<) 0 : 출력되지 않는다. 부등호에 걸 수 있는 기호가 아니라서 깨진 모양이다. {{{#!if 1 !(<) 0 출력 (1!(<) 0)}}} ---- !(1<0) : 출력된다. {{{#!if !(1<0) 출력 !(1<0)}}} ---- !(true and true) : 출력되지 않는다. {{{#!if !(true&true) 출력 !(t&t)}}} ---- !(true and false) : 출력된다. {{{#!if !(true&false) 출력 !(t&f)}}} ---- !(false and false) : 출력된다. {{{#!if !(false&false) 출력 !(f&f)}}} 그냥 and 식 전체에 ! 씌우면 nand가 된다. ---- !(true ^ true) {{{#!if !(true^true) 출력 !(t^t)}}} ---- !(true ^ false) {{{#!if !(true^false) 출력 !(t^f)}}} ---- !(false ^ true) {{{#!if !(false^true) 출력 !(f^t)}}} ---- !(false ^ false) {{{#!if !(false^false) 출력 !(f^f)}}} 그냥 ^ 식 전체에 ! 씌우면 xand(nxor)이다. ---- !(!true) : 출력된다 (not of not) {{{#!if !(!true) 출력 !(!t)}}} ---- !!true : 출력되지 않는다. !는 범위를 입력해줘야 동작되는 모양. {{{#!if !!true) 출력 (!!t)}}} ---- not of not of not of true : 출력되지 않는다. {{{#!if !(!(!true)) 출력 !(!(!t))}}} ---- not of not of not of not of true ---사각형안의사각형안의--- : 출력된다. {{{#!if !(!(!(!true))) 출력 !(!(!(!t)))}}} ---- 결론 : !는 논리연산 NOT이고, 범위를 지정해줘야 동작된다. == ~기호 테스트 == ~false : 출력된다. {{{#!if ~false 출력 ~f}}} ---- ~(~true) : 출력된다. {{{#!if ~(~true) 출력 ~(~t)}}} ---- ~(!(~(!true))) : 출력된다. {{{#!if ~(!(~(!true))) 출력 ~(!(~(!t)))}}} ---- ~true : 출력된다. {{{#!if ~true 출력 ~t}}} ---- ~(true) : 출력된다. {{{#!if ~(true) 출력 ~(t)}}} ---- (~true) : 출력된다. {{{#!if (~true) 출력 (~t)}}} ---- ~~true : 출력된다. {{{#!if ~~true 출력 ~~t}}} ---- ~(-1)=0 : 출력된다. {{{#!if ~(-1)==0 출력}}} ---- ~(-1)=1 : 출력되지 않는다. {{{#!if ~(-1)==1 출력}}} ---- ~(-2)=1 : 출력된다. {{{#!if ~(-2)==1 출력}}} ---- ~false=false : 출력되지 않는다. {{{#!if ~false==false 출력}}} ---- ~false=true : 출력되지 않는다. {{{#!if ~false==true 출력}}} ---- ~(!(true))=false : 출력되지 않는다. {{{#!if ~(!true)==false 출력}}} ---- 결론 : ~ 기호는 논리 연산으로는 동작되지 않는다. 다만 위의 ~(-1)==1 을 가져와서 비트 연산이 참인지 거짓인지 나오는 결과를 두고 논리식을 만들기는 가능하다. !(~(-1)==1) : false 부정이므로 출력된다. {{{#!if !(~(-1)==1) 출력}}} ---- ---만약에 if ~A|B을 해본다면?--- == 역링크 등 기타 테스트 == ||If true [[틀:토론]] include[br]{{{#!if true [include(틀:토론)]}}}|| ||If false [[틀:폐쇄]] include[br] {{{#!if false [include(틀:폐쇄)]}}}|| 출력이 되지 않는 틀은 역링크를 조회해보면 include로 역링크가 걸리지 않는다. ---- ||If true [[:분류:나무마크 문법|분류:나무마크 문법]][br]{{{#!if true [[분류:나무마크 문법]]}}}|| ||If false [[:분류:위키]][br]{{{#!if false [[분류:위키]]}}}|| 출력이 되지 않는 분류로는 해당 문서가 포함되지 않는다. ---- ||If true \#\#\@[br]{{{#!if true ##@if true }}}|| ||If false \#\#\@[br]{{{#!if false ##@if false }}}|| \#\#\@ 테스트. If 문구 사이에 \#\#\@를 끼워넣어도 편집창 상단 표시에 출력되어 나온다. ---- {{{#!if false 이 내용은 false라서 나오지 않습니다. 예시 : 토론 합의 내용 * 문서명(표제어)을 A로 정한다. (/threadslug1 토론 합의) * 문서의 B 서술을 존치한다. (/threadslug2 토론 합의) * 문서의 C 서술을 삭제한다. (/threadslug3 토론 합의) }}} 출력되지 않는 점을 이용하면 [[\#\#주석]] 못지 않게 활용할 수 있을 듯하다. ---- == 메모 == If 조건문에 함수를 넣을 수 있을까? 예 : dday를 넣어서 누구누구 운영자가 재직 며칠이 되었음을 적을 수 있음. == 결론 == ||{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;" {{{ {{}}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;" {{{{#!if }}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;" {{{#blue {{{(논리식)}}}}}}}}} {{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;" {{{#green {{{(true이면 출력할 내용)}}}}}}}}}{{{#!wiki style="margin: 0 -0.625em 0 -0.25em; display: inline;" {{{}} }}}}}}{{{#!wiki style="margin: 0 0 0 -0.25em; display: inline;" {{{} }}}}}}|| || 추정되는 문법 || If구문은 고장난 구문(문법)은 아니지만, ---잠수함 패치로 인해--- 변수를 연결할 수 있는 입력방법을 찾아야 한다. 조건부에 텍스트값, 숫자값, 논리값(true 또는 false)은 지원되는 입력으로 보인다. 연산할 값의 종류와 연산하여 나오는 값의 종류에 알맞은 기호만 쓴다면 크게 원하는 방향에서 벗어나지 않게 쓸 수 있다.
Liberty
|
the seed