>  기사  >  백엔드 개발  >  for 루프는 루프 본문 문을 먼저 실행한 다음 표현식을 평가합니까?

for 루프는 루프 본문 문을 먼저 실행한 다음 표현식을 평가합니까?

青灯夜游
青灯夜游원래의
2020-07-23 14:53:4525388검색

아니요, for 루프는 먼저 표현식을 평가한 다음 루프 본문 문을 실행합니다. 일반적인 형식은 "for (식 1; 식 2; 식 3) {루프 본문}"입니다. 먼저 "식 1"을 실행한 다음 해당 값이 true(0이 아님)이면 "식 2"를 실행합니다. 루프 본문, 그렇지 않으면 루프 본문을 실행한 후 "표현식 3"을 실행합니다.

for 루프는 루프 본문 문을 먼저 실행한 다음 표현식을 평가합니까?

for 루프의 일반적인 형식은 다음과 같습니다.

for(表达式1; 表达式2; 表达式3){
    语句块
}

실행 프로세스는 다음과 같습니다.

1) 먼저 "표현식 1"을 실행합니다.

2) 그런 다음 "표현식 2"를 실행합니다. 값이 true(0이 아님)이면 루프 본문을 실행하고, 그렇지 않으면 루프가 종료됩니다.

3) 루프 본문을 실행한 후 "표현식 3"을 실행합니다.

4) "표현식 2"의 값이 false가 될 때까지 2)와 3) 단계를 반복한 다음 루프를 종료합니다.

위 단계에서 2)와 3)은 루프로 반복적으로 실행됩니다. for 문의 주요 기능은 2)와 3) 단계를 연속적으로 실행하는 것입니다.

"표현식 1"은 첫 번째 루프에서만 실행되며 이후에는 다시 실행되지 않습니다. 이는 초기화 문으로 간주될 수 있습니다. "수식 2"는 일반적으로 "루프 조건"이라고 불리는 다음 루프를 계속할지 여부를 결정하는 관계식입니다. "수식 3"은 증가 또는 감소 연산이 있는 수식인 경우가 많기 때문에 루프 조건이 점차 "참이 아니다"가 됩니다.

for 루프의 실행 과정은 다음 그림으로 나타낼 수 있습니다.

for 루프는 루프 본문 문을 먼저 실행한 다음 표현식을 평가합니까?

“1부터 100까지의 합 계산” 코드를 분석해 보겠습니다.

#include <stdio.h>
int main(){
    int i, sum=0;
    for(i=1; i<=100; i++){
        sum+=i;
    }
    printf("%d\n",sum);
    return 0;
}

실행 결과:

5050

코드 분석:

1) for 문을 실행할 때 먼저 i에 초기값 1을 할당하고 i

2) 두 번째 루프에서는 i의 값이 2이고 i

3) 101번째 루프까지 2)단계를 반복합니다. 이때 i의 값은 101이고, i

이로부터 for 루프의 일반적인 형태를 요약할 수 있습니다:

for(初始化语句; 循环条件; 自增或自减){
    语句块
}

for 루프의 세 가지 표현식

for 루프의 "표현식 1(초기화 조건)", "표현식 2(루프 조건)" ) " 및 "식 3(증가 또는 감소)"은 모두 선택 사항이므로 생략할 수 있습니다(단, 세미콜론 ;는 유지해야 함). ;必须保留)。

1) 修改“从1加到100的和”的代码,省略“表达式1(初始化条件)”:

int i = 1, sum = 0;
for( ; i<=100; i++){
    sum+=i;
}

可以看到,将i=1

1) "sum from 1 to 100" 코드를 수정하고 "식 1(초기화 조건)"을 생략합니다.

for(i=1; ; i++) sum=sum+i;

i=1이 for 루프로 이동된 것을 확인할 수 있습니다. 밖의.

2) "수식 2(루프 조건)"은 생략됩니다. 다른 처리가 이루어지지 않으면 무한 루프가 됩니다. 예:

i=1;
while(1){
    sum=sum+i;
    i++;
}

for( i=1; i<=100; ){
    sum=sum+i;
    i++;
}

와 동일합니다. 소위 무한 루프는 루프 조건이 항상 참이고 루프가 계속되고 끝나지 않는다는 것을 의미합니다. 무한 루프는 프로그램에 매우 해로우므로 피해야 합니다.

3) "수식 3(자기 증가 또는 자체 감소)"이 생략되면 "수식 2(루프 조건)"의 변수는 수정되지 않습니다. 이 경우 변수를 수정하는 문을 추가할 수 있습니다. 루프 본체. 예:

for( ; i<=100 ; ){
    sum=sum+i;
    i++;
}

4) "식 1(초기화 문)" 및 "식 3(자기 증가 또는 자기 감소)"은 생략됩니다. 예:

while(i<=100){
    sum=sum+i;
    i++;
}

for( ; ; )  语句

5와 동일합니다. 3개의 표현을 동시에 생략할 수 있습니다. 예:

while(1)  语句

for( sum=0; i<=100; i++ )  sum=sum+i;

6과 같습니다. "식 1"은 초기화 문 또는 기타 문일 수 있습니다. 예:

for( sum=0,i=1; i<=100; i++ )  sum=sum+i;

7) "표현식 1" 및 "표현식 3"은 단순 표현식이거나 쉼표 표현식일 수 있습니다.

for( i=0,j=100; i<=100; i++,j-- )  k=i+j;

또는:

for( i=0; (c=getchar())!=&#39;\n&#39;; i+=c );

8) "식 2"는 일반적으로 관계식 또는 논리식이지만 값이 0이 아닌 한 숫자 값이나 문자일 수도 있습니다. 실행. 예:

for( ; (c=getchar())!=&#39;\n&#39; ; )
    printf("%c",c);
또 다른 예: rrreee

관련 추천: "🎜c 언어 튜토리얼🎜"🎜

위 내용은 for 루프는 루프 본문 문을 먼저 실행한 다음 표현식을 평가합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.