for( ) 문에서 , (콤마)의 사용

익명 사용자의 이미지

for(초기식; 조건식; 증감식)문에서

초기식과 증감식에 ,(콤마)를 사용하는 경우는 많이 봤지만
조건식에서 ,(콤마)를 사용하는 경우는 거의 보지 못했는데
지금 보는 소스중에 있더군요

이런건 예제 프로그램을 만들어서 확인해보면 어떻게 동작하는지 쉽게 확인할 수 있지만
좀 비규칙적으로 동작하는 것 같습니다

예제 프로그램을 만들어서 확인하신 분 말고
어떻게 동작하는지 이론적으로 알고 계신 분 있나요?

답변주시면 감사하겠습니다

chadr의 이미지

콤마 연산자의 연산 결과는 무조건 맨 오른쪽 항에 있는 문장이 연산결과가 됩니다.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

익명 사용자의 이미지

예제 프로그램을 만들어서 테스트해본 결과 그런 것 같기는 했습니다

그런데 그러면 콤마 왼쪽에 항을 두는 이유는 무엇인가요?

chadr의 이미지

콤마연산자 자체가 2항 연산자라서 그렇습니다. 이렇게 생각해보시면 됩니다.

우리가 이렇게 글을 쓸때도 어떤사항을 나열할때 콤마를 쓰지요?

사과, 배, 수박, 딸기

이런식으로 콤마 연산자는 나열이라고 보시면됩니다. 나열을 하려면 반드시 최소한 두개는 필요하지요?
하지만 특성상 연산자이기 때문에 반드시 계산결과가 있어야하므로 왼쪽에서 오른쪽으로
결합관계에 따라 맨 마지막 항목이 계산결과가 됩니다.

물론 연산자이기 때문에 콤마로 구분되어있는 식도 모두 수식으로 간주되어 실행이 됩니다.

그리고 for문에서 초기값과 증감식에 콤마 연산자가 자주 쓰이는 이유는 위와 같은 특성때문입니다.
나열이며 연산자이기 때문에 콤마로 구분된 영역은 하나의 수식(문장)으로 간주되어 실행되기 때문입니다.

그리고 for문의 특성상 초기값과 증감식 부분에는 굳이 계산결과가 필요가 없죠. 그런데 비교문 부분에는
계산결과가 반드시 쓰이기 때문에 콤마연산자의 연산결과가 중요하게 됩니다.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

cleansugar의 이미지

신기하다

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

neogeo의 이미지

그냥 comma operator 스펙입니다.

http://en.wikipedia.org/wiki/Comma_operator

Neogeo - Future is Now.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.