차례:
- IF
- 다음 명령은 booleanExpression을 평가합니다. 이것이 true로 평가되면 컨트롤이 표현식으로 전달됩니다. 블록이 끝나면 컨트롤은 booleanExpression으로 돌아가서 프로세스를 반복합니다.
- 다음 명령은 표현식을 실행합니다. 그런 다음 booleanExpression을 평가합니다. 이 값이 true로 평가되면 컨트롤은 루프의 맨 위로 돌아가서 프로세스를 반복합니다.
- 다음 명령은 표현식 또는 변수 선언 일 수있는 initCommand를 실행합니다. 그런 다음 boolExpression을 평가합니다. 이 값이 true로 평가되면 컨트롤은 expressions1로 전달됩니다. boolExpression이 false이면 컨트롤은 for 루프의 닫힌 중괄호 뒤에있는 첫 번째 명령문으로 전달됩니다. 표현식이 완료되면 제어는 boolExpression으로 돌아가서 프로세스를 반복하기 전에 loopExpression에 포함 된 표현식으로 전달됩니다. initCommand가 새 변수를 선언하면 컨트롤이 루프 바깥으로 전달되는 즉시 범위 밖으로 벗어납니다.
- for (int i = 0; i <20; i ++) {// 숫자가 소수가 아닌 경우 if (! isPrime (i)) { / … 다음 값으로 건너 뜁니다. continue;} // 처리 진행}
비디오: 29살의 C언어 with 거니 [Chapter#6 - 흐름제어] 2024
Dummies 치트 시트를위한 C ++ 부분
다음 C ++ 구조체는 프로그램을 통해 제어 흐름을 지시합니다. 숙련 된 프로그래머라면 이러한 구조의 기능은 다른 언어에서 익숙 할 것입니다.
IF
다음 명령은 booleanExpression을 평가합니다. true로 평가되면 컨트롤은 expressions1로 전달됩니다. 그렇지 않으면 컨트롤은 선택적 expression2로 전달됩니다.
WHILE다음 명령은 booleanExpression을 평가합니다. 이것이 true로 평가되면 컨트롤이 표현식으로 전달됩니다. 블록이 끝나면 컨트롤은 booleanExpression으로 돌아가서 프로세스를 반복합니다.
while (booleanExpression) {expressions;}
DO … WHILE
다음 명령은 표현식을 실행합니다. 그런 다음 booleanExpression을 평가합니다. 이 값이 true로 평가되면 컨트롤은 루프의 맨 위로 돌아가서 프로세스를 반복합니다.
FOR
다음 명령은 표현식 또는 변수 선언 일 수있는 initCommand를 실행합니다. 그런 다음 boolExpression을 평가합니다. 이 값이 true로 평가되면 컨트롤은 expressions1로 전달됩니다. boolExpression이 false이면 컨트롤은 for 루프의 닫힌 중괄호 뒤에있는 첫 번째 명령문으로 전달됩니다. 표현식이 완료되면 제어는 boolExpression으로 돌아가서 프로세스를 반복하기 전에 loopExpression에 포함 된 표현식으로 전달됩니다. initCommand가 새 변수를 선언하면 컨트롤이 루프 바깥으로 전달되는 즉시 범위 밖으로 벗어납니다.
- FOR (EACH)
2011 표준에서는 for 루프의 두 번째 형식을 도입하기도하는데, "for each"로 알려져 있기 때문입니다. (for initCommand; boolExpression; loopExpression) foreach에 대한 유사성이 다른 언어에서 발견되었습니다. 이 형식에서 선언에 선언 된 변수는 list의 첫 번째 멤버 값을 가져 와서 블록을 실행합니다. 완료되면 선언 된 변수는 list의 두 번째 값을 취하여 식을 다시 실행합니다. 이 프로세스는 list의 각 값에 대해 반복됩니다.
for (선언: list) {expressions;}
SWITCH다음 명령은 integerExpression을 평가하고 결과를 나열된 각 사례와 비교합니다. 값이 상수 정수 값 val1, val2 등 중 하나와 같은 것으로 밝혀지면 컨트롤은 해당 식 세트로 전달되고 컨트롤에서 중단이 발생할 때까지 계속됩니다.expression이 값과 같지 않으면 control이 default 다음의 expressionsN으로 넘어갑니다.
switch (integerExpression) {case val1: expressions1; 단절; 사례 val2: expressions2; 단절; [default: expressionsN;]}
BREAK, CONTINUE, GOTO계속은 루핑 컨트롤의 닫힌 중괄호 끝에 컨트롤을 전달합니다. 이로 인해 루프는 다음 반복으로 계속됩니다. 예를 들어, 다음 루프는 1과 20 사이의 소수를 처리합니다.
for (int i = 0; i <20; i ++) {// 숫자가 소수가 아닌 경우 if (! isPrime (i)) { / … 다음 값으로 건너 뜁니다. continue;} // 처리 진행}
break는 루핑 명령 중 닫힌 중괄호 뒤에있는 첫 번째 명령문으로 제어를 전달합니다. 이렇게하면 실행이 루프를 즉시 종료합니다. 예를 들어, 다음은 파일이 끝날 때까지 문자를 읽습니다.
while (true) {// 입력 객체 입력에서 줄 읽기 >> line; / / 실패 또는 파일의 끝이 발생하면 … if (cin. eof () || cin. fail ()) {// … 다음 루프 break;} // 행 처리}
A goto label은 제공된 레이블로 제어를 전달합니다. 위의 중단 예제는 다음과 같이 작성 될 수 있습니다.
while (true) {// 입력 객체로부터 라인을 읽는다. input >> line; // 실패 또는 end-of-file이 발생하는 경우 … if (cin. eof () || cin. fail ()) {// …}} // 루프 처리} exitLabel: // 제어가 계속됩니다.