programing

for loop 끝에 있는 ";"의 목적은 무엇입니까?

copyandpastes 2022. 10. 30. 21:02
반응형

for loop 끝에 있는 ";"의 목적은 무엇입니까?

다음 코드를 찾았습니다.

int func_prim (int zahl) {
    int count;
    if (zahl < 0)
        return -1;

    for (count = 2; zahl % count != 0 && zahl >= count; count++);
    if (count == zahl)
        return 1;
    return 0;
}

기능의 포인트는 숫자가 소수인지 아닌지를 확인하는 것입니다.

에 for-loop이 있는지 수 .;★★★★★★★★★★★★★★★★★★:

                                                            v
for (count = 2; zahl % count != 0 && zahl >= count; count++);

그렇지 않으면 코드가 제대로 작동하지 않습니다.

어떤 설명입니까?

이는 다음과 같은 의미를 가집니다.

for(count = 2; zahl % count != 0 && zahl >= count; count++)
{
}

에는 for가 .for키워드 뒤에 세미콜론으로 구분된3개의 옵션 표현을 포함하는 괄호 뒤에 루프가 반복될 때마다 실행되는 본문이 표시됩니다.

이 예에서 for 루프의 목적은 다음 값을 설정하는 것입니다.count하다)와 .zahl.이것은 세미콜론으로 구분된 식에서 이루어지므로 루프 본문은 아무것도 수행할 필요가 없습니다.

루프는 아무것도 할 필요가 없기 때문에 빈 문을 본문으로 사용합니다.

경우,;마지막에 생략되어 다른 변경은 이루어지지 않았습니다.그러면 for 루프 뒤의 if 스테이트먼트 자체가 for 루프의 본체가 됩니다(이것은 의도된 것이 아니기 때문에, 관찰한 바와 같이 프로그램이 파손됩니다).

루프 의 루프 본체로 은 1개의 루프 본체입니다.;같은 줄에 빈 루프 본문을 쓰는 유일한 방법은 아닙니다.또, 그렇게 하는 것이 가장 현명한 방법도 아닐지도 모릅니다.그것은 완벽하게 잘 작동하지만, 문제는 다른 독자들과 같은 프로그래머가 나중에 다시 프로젝트로 돌아오면 그것이 실제로 오류인지 아닌지 궁금해 할 수 있다는 것이다.결국 C형 언어로 코딩할 때 행 끝에 세미콜론을 입력하는 경우가 많기 때문에 다른 곳에 세미콜론을 입력하는 것이 쉽습니다.

에서는 '하다'가 가 있는 ;그 본체는 선택된 스타일이기 때문에, 누군가가 실제로 언제 실수했는지 알아채기 어렵다.;★★★★★★★★★★★★★★★★★★★★★★★★★★★

따라서 다음과 같은 대안이 바람직할 수 있다.

  • ★★★★★★★★★★★★★★★★★★의;, 들여쓰기, 다음 행 --sh1이 나타내는 바와 같이
  • 블록으로 .「 」 、 「 」 。{ }
  • continue;스테이트먼트: 단순히 루프가 다음 반복으로 넘어갑니다(루프 본체가 비어 있을 때 발생하는 것과 동일).또한 sh1이 시사하는 바와 같이

은 bodyfor-loop이 합니다.는 C로 됩니다.if loopstatement의 입니다.

forloop(sublic 스테이트먼트)은

for ( clause-1 ; expression-2 ; expression-3 ) statement 

statementnull 스테이트먼트(; 6.에 기재되어 있습니다. C11 6.8.3 †

null 문(세미콜론만으로 구성됨)은 연산을 수행하지 않습니다.

5항에서 예시를 제시합니다.

프로그램 프래그먼트 내

char *s;
/* ... */
while (*s++ != '\0')
    ;

빈 루프 본문을 반복문에 제공하기 위해 null 문이 사용됩니다.

에서도 같은 일이 일어나고 있다

for (count = 2; zahl % count != 0 && zahl >= count; count++);

;는, 빈 본체를 「빈 본체」에합니다.for without. 없없 없이.;에 문for이치노

다른 훌륭한 답변들이 이미 말하고 있는 것 외에, 제가 지적하고 싶은 것은

for(count=2; zahl % count != 0 && zahl >= count; count++);

(a, a)forcounter빈가 있는 는, 「counter」에 합니다.

count=2;
while(zahl % count != 0  && zahl >= count)
{
    count++;
}

코드의 목적이 기재되어 있는 몇 가지 대안보다 더 명확해집니다.코멘트가 존재하지 않는 경우, 제시된 사례와 같이 빈 스테이트먼트가 있는 루프는 코드를 저장하거나 사용해야 하는 다른 프로그래머를 혼란스럽게 할 수 있습니다(여기 OP의 경우처럼).

하는 데 이 될 수 , 그for과 빈말을 반복하다while이치노 후자는 그 범위를 이해하는 데 필요한 작업이 적습니다.

;for ""를 합니다.forcount.

for 스테이트먼트:

for 문은 변수 초기화, 식 테스트 및 변수 변경을 쉽게 할 수 있는 구조를 가진 루프문입니다.카운터 제어 루프를 만들 때 매우 편리합니다.for 문의 일반적인 형식은 다음과 같습니다.

 for (initialize; test; step)
   statement

[...]

특수문:

null 문은 세미콜론일 뿐입니다.

 ;

null 스테이트먼트는 아무것도 하지 않습니다.값은 저장되지 않습니다.프로그램 실행 중 시간이 경과하지 않습니다.

대부분의 경우 null 문은 루프 문의 본문 또는 for 문의 1개 또는 여러 표현으로 사용됩니다.다음으로 null 문을 루프의 본체로 사용하는 for 문의 예를 나타냅니다(또한 재미삼아 정수 제곱근 n도 계산합니다).

 for (i = 1; i*i < n; i++)
   ;

다음으로 null 문을 for 루프의 본문으로 사용하고 출력을 생성하는 예를 나타냅니다.

 for (x = 1; x <= 5; printf ("x is now %d\n", x), x++)
   ;

또한 null 문은 블록 내에서 마지막이 될 수 있는 라벨을 따라가기 위해 사용될 수도 있습니다.


의 경우, "" " " " " " " " ";는 스테이트먼트의 Null 스테이트먼트입니다.

int func_prim (int zahl) {
  int count;
  if (zahl < 0)
    return -1;

  for (count = 2; zahl % count != 0 && zahl >= count; count++)
    ;
  if (count == zahl)
    return 1;
  return 0;
}

이 없으면, 「」는if.

int func_prim (int zahl) {
  int count;
  if (zahl < 0)
    return -1;

  for (count = 2; zahl % count != 0 && zahl >= count; count++)
    if (count == zahl)
      return 1;
  return 0;
}

따라서 다르게 행동합니다.

는 의 값을 합니다.count.

a for

은 괄호로 .{ }

단, 단일 스테이트먼트 본문의 경우 중괄호는 옵션입니다.

;빈 문입니다.

하면, '아주 좋다', '아주 좋다', '아주 좋다'는 을 알 수 .for루프가 실행될 때까지false.

으로는 프프음음 음음음음 음음 음음음 음음음 or or or보다 .zahl보다 클 때합니다.count하면서, 이 숫자들은 이 숫자들을 반복하고 있는지 하고 있습니다.zahlcount.zahlcount루프가 정지됩니다. 않으면됩니다.count는 「」와 같습니다.zahl.

는, 「」의 유무를 합니다.count zahl가 약면면면면보다 작은 모든 할 것이다.zahl2.2보다 , ,,zahl는, 그 큰 숫자 수 있기 에, 2는 2가 .그러면 됩니다.zahlprime.prime.prime은

for 루프가 사용되는 스테이트먼트를 나타냅니다.비워둘 수 없습니다.적어도 하나의 문장이 포함되어야 한다.;는 반복이 실행되는 빈 스테이트먼트입니다.

언급URL : https://stackoverflow.com/questions/29836119/what-is-the-purpose-of-at-the-end-of-for-loop

반응형