삼항연산자 이해방법입니다
, 응애 응애님이 작성printf(i % 3 ? i % 5 ? "%d\n" : "Buzz\n" : i % 5 ? "Fizz\n" : "FizzBuzz\n", i);위 내용이 책을 봐도 당체 이해가 되질 않네요 ㅜ.ㅜ
간단한 삼항연산자는 이해하는데 저건 당체 이해가 되질 않습니다
쉽게 풀어서 설명해주실 분 계신가요
회신: 삼항연산자 이해방법입니다
, 도장_ 관리자님이 작성삼항 연산자 기본 문법은
이해하기 쉽게 괄호로 구분하면
if test1 exp1 else exp2
이런 형태를
test1 ? exp1 : exp2
이렇게 바꾼 것입니다.
if test1 { if test2 exp1 else exp2 } else exp3
if 부분에 중첩된 if 문을 포함해서 삼항 연산자로 바꾸면
test1 ? test2 ? exp1 : exp2 : exp3
형태입니다. 이해하기 쉽게 괄호로 구분하면
test1 ? (test2 ? exp1 : exp2) : exp3
이렇게 됩니다.
if test1 { if test2 exp1 else exp2 } else { if test3 exp3 else exp4 }
이런 형태를 삼항 연산자로 바꾸면
test1 ? test2 ? exp1 : exp2 : test3 ? exp3 : exp4이런 형태가 됩니다.
이해하기 쉽게 괄호로 구분하면
test1 ? (test2 ? exp1 : exp2) : (test3 ? exp3 : exp4)
이렇게 묶을 수 있습니다. 처음 본 test1 ? exp1 : exp2 구조에서 exp1과 exp2가 각각 삼항 연산자로 중첩된 것입니다.
FizzBuzz의 삼항 연산자를 보면
i % 3 ? i % 5 ? "%d\n" : "Buzz\n" : i % 5 ? "Fizz\n" : "FizzBuzz\n"
이해하기 쉽게 괄호 형태로 바꿔보면
i % 3 ? (i % 5 ? "%d\n" : "Buzz\n") : (i % 5 ? "Fizz\n" : "FizzBuzz\n")
결국 아까 살펴본 이 형태와 같습니다.
test1 ? (test2 ? exp1 : exp2) : (test3 ? exp3 : exp4)
그러면 이 삼항 연산자를 다시 중첩 if 문으로 풀어보세요. ps. 온라인 서점 리뷰는 관리자의 큰 힘이 됩니다.