삼항연산자 이해방법입니다
, 응애 응애님이 작성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
    exp3if 부분에 중첩된 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. 온라인 서점 리뷰는 관리자의 큰 힘이 됩니다.