C 언어에서 for의 사용법은 다음과 같습니다.
for 루프 문의 일반적인 형태는 다음과 같습니다.
for (表达式1; 表达式2; 表达式3) { 语句; }
우선 두 가지 점을 강조해야 합니다.
1) 식 1 사이의 관계, 표현식 2와 표현식 3은 세미콜론을 사용하지 마십시오. 쉼표로 쓰지 마십시오.
2) for(표현식 1, 표현식 2, 표현식 3) 뒤에는 세미콜론을 추가하지 마세요. 많은 초보자가 이 실수를 저지르기 때문에 그 뒤에 세미콜론을 추가하지 않을 수 없습니다.
for 루프는 그 뒤에 있는 하나의 명령문만 제어할 수 있기 때문에 C 언어에서는 세미콜론도 명령문, 즉 빈 명령문입니다. 따라서 끝에 세미콜론을 추가하면 for 루프는 이 세미콜론만 제어할 수 있으며 아래 중괄호 안의 명령문은 for 루프에 속하지 않습니다.
실행 과정을 살펴보겠습니다.
수식 1을 풀어보세요.
수식 2를 풀어보세요. 값이 true이면 for 문에 지정된 포함된 문을 실행한 후 3단계를 실행하고, 표현식 2의 값이 false이면 루프를 종료하고 5단계로 이동합니다.
수식 3을 풀어보세요.
위의 2단계로 돌아가서 계속하세요.
루프가 종료되고 for 문 아래의 명령문이 실행됩니다.
이 실행 과정을 보면 "식 1"은 한 번만 실행되고 "식 2", "식 3", "내장 문" 사이에 루프가 수행되는 것을 알 수 있습니다.
for 문의 가장 간단한 형태는 다음과 같습니다.
for (循环变量赋初值; 循环条件; 循环变量增值) { 语句; }
1+2+3+4+…+100의 합을 구하는 프로그램을 작성하겠습니다.
# include <stdio.h> int main(void) { int i; int sum = 0; //sum的英文意思是“总和” for (i=1; i<=100; ++i) //++是自加的意思, ++i相当于i = i + 1 { sum = sum + i; /*等价于sum += i;但是不建议这么写, 因为sum = sum + i看起来更清楚、更舒服*/ } printf("sum = %d\n", sum); return 0; }
출력 결과는 다음과 같습니다.
sum = 5050
이 프로그램의 기능은 1+2+3+4+...+100의 합을 찾는 것입니다. 루프가 없는 경우 한 번 추가하면 하나의 문이 필요합니다. 100번을 하려면 100개의 진술이 필요합니다. 여기서는 1부터 100까지 추가됩니다. 1부터 10000까지 추가되면 10000개의 문이 필요합니다. 그러나 루프를 갖는 것은 매우 편리합니다. 원하는 만큼 추가할 수 있으며 매개변수 하나만 변경하면 됩니다. 그래서 순환이 중요해요.
위 프로그램이 어떻게 실행되는지 실행 과정을 따라가 보겠습니다.
1. 먼저 루프 변수 i를 정의합니다. 정의할 때 초기값을 할당할 필요가 없습니다. for 루프에서 초기값을 할당할 수도 있습니다. 하지만 앞서 언급했듯이 변수를 정의할 때 값이 확실하지 않으면 0으로 초기화하는 것이 가장 좋습니다. 따라서 프로그램에서는 i를 정의할 때 초기값을 지정할 수도 있습니다. 그러면 for 루프의 "표현식 1"은 생략할 수 있지만 세미콜론은 생략할 수 없습니다.
이 경우 실행 시 1단계를 건너뛰고 바로 2단계로 진행하며 나머지는 변경하지 않고 그대로 둡니다. 따라서 프로그램은 다음과 같이 작성할 수도 있습니다.
# include <stdio.h> int main(void) { int i = 1; int sum = 0; for (; i<=100; ++i) { sum = sum + i; } printf("sum = %d\n", sum); return 0; }
물론 표현식 1을 추가할 수도 있지만 최악의 경우 값을 다시 할당해야 합니다.
2. 그런 다음 "sum"을 저장할 변수 sum을 정의하고 초기값 0을 할당한 다음 for 루프를 입력합니다.
먼저 수식 1을 풀고, 즉 변수 i에 초기값을 할당합니다. , i= 1; 식 1은 한 번만 실행되고 다시 실행되지 않습니다.
그런 다음 식 2를 푼다. 1<=100이 true이면 for 루프에 포함된 문, 즉 sum=0+1을 실행합니다.
그런 다음 3단계를 수행하면 변수 i가 1씩 증가합니다. 즉, 변수 i가 1에서 2로 변경됩니다.
그런 다음 2<=100이 true인 경우 표현식 2를 푼 다음 for 루프에 포함된 문 sum=0+1+2를 실행합니다.
그런 다음 3단계를 수행하면 변수 i가 1씩 증가합니다. 즉, 변수 i가 2에서 3으로 변경됩니다.
그런 다음 표현식 2를 푼다. 즉, 3<=100이 true인 경우 for 루프에 포함된 문 sum=0+1+2+3을 실행합니다.
...
++i가 100이 될 때까지 루프는 이렇게 계속됩니다. 표현식 2, 즉 100<=100이 true인 것을 푼 다음 for 루프에 포함된 문을 실행합니다. =0 +1+2+3+…+100.
그런 다음 3단계를 수행하면 변수 i가 1씩 증가합니다. 즉, 변수 i가 100에서 101로 변경됩니다. 그런 다음 표현식 2를 해결합니다. 즉, 101<=100이 true가 아닌 경우 루프를 종료하고 for 루프 아래에 있는 명령문인 printf를 실행합니다.
위는 이 프로그램의 실행 과정입니다. for 문의 코드 표준화 문제와 관련하여 강조하고 싶은 두 가지 사항이 있습니다.
1) if, else, for, while 및 do는 그 뒤의 하나의 문만 제어할 수 있습니다. 여러 문을 제어하려는 경우. , 중괄호 {}를 추가해야 합니다. 그러나 코드 표준화에 따라 if, else, for, while 뒤의 실행 문에는 한 줄만 있어도 몇 줄이든지 {}를 추가해야 합니다.
2) if, for, while 등의 키워드는 공백을 남겨두고 왼쪽 괄호( (, 키워드를 강조 표시)를 와야 합니다.
그 외에 알려드리고 싶은 또 다른 지식 포인트가 있습니다. 위 프로그램에 대해 말씀드리자면, for(i=1; i<=100;++i)
完全可以写成for(i=1; i<101; ++i)
, 이 작성 방법을 사용해 보시는 것이 좋습니다. 즉, 루프문의 루프 조건은 반열림, 반폐쇄로 작성해야 합니다. for 루프 또는 while 루프
for(i=1; i<101; ++i)
实际上是 1≤i<101
,是半开半闭的;而for(i=1; i<=100; ++i)
实际上是 1≤i≤100
,是全闭的。那么为什么建议使用半开半闭的呢?因为如果写成 i<=100 的话,那么每次判断的时候都要判断两次,即 i<100 和 i==100,而写成 i<101 的话每次只需要判断一次。
下面再给大家写一个程序,求 1 到 100 之间所有奇数的和。
# include <stdio.h> int main(void) { int i; int sum = 0 ; for (i=1; i<100; i+=2) //i+=2;等价于i = i + 2; { sum = sum + i; } printf("sum = %d\n", sum); return 0; }
输出结果是:
sum = 2500
推荐教程:《C视频教程》
위 내용은 C 언어에서 for의 사용법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!