C 프로그래밍 치트 시트 -4
4782 단어 c
4. 루프 제어 구조
때때로 우리는 코드의 일부가 두 번 이상 실행되기를 원합니다. 프로그램에서 코드를 반복하거나 대신 루프를 사용할 수 있습니다. 예를 들어 코드의 일부를 백 번 실행해야 하는 경우 코드를 반복하는 것은 실용적이지 않습니다. 또는 루프 내에서 반복 코드를 사용할 수 있습니다.
프로그램의 일부를 반복할 수 있는 세 가지 방법
for
, while
및 do-while
가 있습니다.4.1 동안 루프
while
루프는 조건 또는 표현식과 단일 명령 또는 실행해야 하는 명령 블록으로 구성됩니다.루프에서.
//for single statement
while(expression)
statement;
//for multiple statement
while(expression)
{
block of statement
}
while
루프 내의 명령문은 테스트 중인 조건이 true로 유지될 때까지 계속 실행됩니다. 조건이 false가 되면 제어는 while
루프의 본문 다음에 오는 첫 번째 문으로 전달됩니다.while
의 일반적인 형태는 아래와 같다.initialise loop counter;
while (test loopcounter using a condition)
{
do this;
and this;
increment loopcounter;
}
4.2 for 루프
for
루프는 while
루프와 비슷하지만 더 복잡합니다. for
루프는 루프가 실행될 횟수와 명령 섹션을 결정하는 제어 문으로 구성됩니다. 명령 섹션은 단일 명령 또는 명령 블록입니다.//for single statement
for(control statement)
statement;
//for multiple statement
for(control statement)
{
block of statement
}
제어문 자체에는 세 부분이 있습니다.
for ( initialization; test condition; run every time command )
* `Initialization` part is performed only once at `for` loop start. We can initialize a loop variable here.
* `Test condition` is the most important part of the loop. Loop will continue to run if this condition is valid (true). If the condition becomes invalid (false) then the loop will terminate.
* `Run every time command` section will be performed in every loop cycle. We use this part to reach the final condition for terminating the loop. **For example** we can increase or decrease loop variable’s value in a way that after specified number of cycles the loop condition becomes invalid and `for` loop can terminate.
4.3 do-while 루프
while
및 for
루프는 상단에서 종료 조건을 테스트합니다. 대조적으로, C의 세 번째 루프인 do-while
는 루프 본문을 통과할 때마다 맨 아래에서 테스트합니다. 본문은 항상 적어도 한 번 실행됩니다.do의 구문은
do
{
statements;
}while (expression);
명령문이 실행된 다음 표현식이 평가됩니다. 참이면 명령문이 다시 평가되는 식입니다. 표현식이 false가 되면 루프가 종료됩니다. 경험에 따르면
do-while
는 while 및 for보다 훨씬 덜 사용됩니다. do-while
루프는 루프 내의 명령문이 한 번 이상 실행되도록 하는 데 사용됩니다.4.4 중단 및 계속 문
우리는 이전에
break
구조에서 switch...case
문을 사용했습니다. 루프 내에서 "break"문을 사용하여 루프를 종료하고 (특정 조건으로) 종료할 수도 있습니다.위의 예에서 루프 실행은
num>=20
또는 입력된 점수가 음수가 될 때까지 계속됩니다.while (num<20)
{
printf("Enter score : ");
scanf("%d",&scores[num]);
if(scores[num]<0)
break;
}
Continue
문은 루프에서 사용할 수 있습니다. break 명령continue
과 마찬가지로 프로그램의 흐름을 변경합니다. 그러나 루프를 종료하지는 않습니다. 현재 루프의 나머지 반복을 건너뛰고 루프의 시작점으로 돌아갑니다.#include<stdio.h>
main()
{
while((ch=getchar())!='\n')
{
if(ch=='.')
continue;
putchar(ch);
}
}
위의 예에서 프로그램은 모든 입력을 허용하지만 '.' 그 캐릭터. 텍스트는 입력할 때 에코되지만 Enter 키("\n"문자를 삽입하는 것과 동일)를 누른 후 기본 출력이 인쇄됩니다. 앞에서 말했듯이
getchar()
함수가 버퍼링된 입력 함수이기 때문입니다.4.5 Goto 및 레이블
C는 무한 남용
goto
명령문과 분기labels
를 제공합니다. 공식적으로 goto
문은 절대 필요하지 않으며 실제로는 거의 항상 그것 없이 코드를 작성하는 것이 쉽습니다. 이 책에서는 goto
를 사용하지 않았습니다.그럼에도 불구하고
gotos
자리를 찾을 수 있는 몇 가지 상황이 있습니다. 가장 일반적인 것은 한 번에 두 개 이상의 루프를 끊는 것과 같이 깊게 중첩된 구조에서 처리를 포기하는 것입니다. break 문은 가장 안쪽 루프에서만 나오기 때문에 직접 사용할 수 없습니다. 따라서:for ( ... )
{
for ( ... )
{
...
if (disaster)
{
goto error;
}
}
}
...
error:
/* clean up the mess */
이 구성은 오류 처리 코드가 간단하지 않고 여러 위치에서 오류가 발생할 수 있는 경우에 편리합니다.
A
label
는 변수명과 형태가 같고 뒤에 콜론이 붙는다. goto
와 동일한 기능의 모든 명령문에 첨부할 수 있습니다. 레이블의 범위는 전체 기능입니다.주 -
goto
를 사용하면 프로그램을 신뢰할 수 없고 읽을 수 없으며 디버그하기 어려워집니다. 그러나 많은 프로그래머가 goto
매혹적이라고 생각합니다.여기에서 저를 팔로우해주세요 :)
Reference
이 문제에 관하여(C 프로그래밍 치트 시트 -4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codelyf/c-programming-cheat-sheet-4-5adn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)