thnam91   4년 전

해당 문제는 어렵지 않게 풀었지만, 근사하게 풀고 싶어서 삼항 연산자를 도입하려고 했습니다.

이전에도 삼항 연산자를 쓰면 적당한 상황에 잘 사용을 했었는데요.


유독 이번에는 삼항 연산자 적용하니까 문법 오류가 발생해서 문의드립니다.

아래의 코드에서 6 ~ 9 라인을 삼항 연산자를 쓰면 14 라인처럼 한 줄의 코드로 표현할 수 있을 것 같습니다.


그런데 else 뒤에 expect expression 이라면서 삼항 연산자 사용이 안되네요.

제가 어떤 점을 간과하고 있는 것인지 고수님들의 고견 구합니다.

jh05013   4년 전

a if b else c는 "b이면 a, 아니면 c"라는 을 가집니다. 그래서 a, b, c는 모두 expression이어야 합니다. break는 expression이 아닙니다.

14줄에서 cnt+=1은 expression이 아니므로 여기에도 오류가 있는 것처럼 보이겠지만, 실제로는 cnt += (1 if n[i] == '0' else break)로 처리되기 때문에 a에는 오류가 없습니다.

thnam91   4년 전

@jh05013 명쾌한 답변 감사합니다.

무엇이 문제였는지 확실하게 이해되네요~

댓글을 작성하려면 로그인해야 합니다.