본문 바로가기

c기초

006. 순환문 개념 배우기 (for)

<결과>

1부터 10까지의 합 : 55

 

- int i;  int hap = 0;

이거는 앞에 배운 내용이랑 똑같다. 근데 hap은 바로 0이라고 해버렸다.

굳이 hap을 선언하고 뒤에서 hap = 0; 이렇게 안적고 바로 저렇게 하면 편하다.

똑같은 말이다.

 

- for (i = 1; i <= 10; i = i + 1)

처음 이 문장을 보면 도대체 뭔 말인지 알아먹을 수가 없다.

for안에 문장이 3개나 있다. for(초기값; 조건식; 증감식) 이런식으로 구성이 된다. (용어는 정확하지 않음)

 

초기값을 보면 i = 1 이다. i 의 값은 처음에는 1이라는 뜻이다.

 

조건식을 보면 i <= 10 이다. 이게 참이면 for문안에 있는걸 실행한다. 거짓이면 for문 밖으로 나간다.

 

증감식을 보면 i = i + 1 이다. 이게 무슨 말도안되는 식이고? 라고 생각할 수 있지만 가능하다.

저번에 = 이거 뜻이 뭐라고 했는지 기억이 나면 이해를 할 수 있다. i + 1 을 하고 나서 i에다가 그 값을 집어넣으란 뜻이다.

for문안에 있는걸 한번 실행하면 증감식을 한번 실행한다.

 

이제 for문은 이해를 했는데 순서가 어떻게 되느냐?

초기식 -> 조건식 (참) -> for문 실행 -> 증감식 -> 조건식 (참) -> for문 실행 -> 증감식 -> 조건식 (거짓) -> 빠져나감

이런 식이다.

 

- printf("1부터 10까지의 합 : %d", hap);

그냥 내가 쓰고싶은말을 쓰고 %d형식도 출력하는 부분이다.

%d, %f는 단독으로만 사용해야 하는것이 아니라 %d%d 이렇게 사용할 수도 있고 예제처럼 쓰고싶은말도 쓰고 %d도 쓸 수 있다.

 

 

 

for 문을 배웠으니 좋은 기능을 하나 알려주고 싶다. visual studio를 쓰거나 visual studio code를 쓰는 디버깅기능을 활용하면 좋을 것 같다. 리눅스에서 터미널을 쓰고계신분한테는 알려드릴 수 없다. 나도 몰라서 터미널에서 안하고 code를 쓴다.

이 사진은 code기준이다. visual studio는 잘 찾아보면 "한 단계씩 실행(아마 맞을거임)"이라는 게 있을거다. 차례대로 따라하면 된다. ( 먼저 코드부터 치고 오자 )

숫자 옆에 마우스를 대면 빨간점이 뜨는데 그걸 누른다. 중단점이라고 한다.

F5를 누른다. 그럼 중단점에서 멈출 것이다.

 

중단점에서 멈춘 모습이다. 노란 표시는 지금 뭘 하는지 보여 주는 부분이다.

옆에 변수 Locals 에 보면 i : 0 hap : 0 이라고 표시되어 있다.

지금 현재 i 가 0이라는 뜻이고 hap 도 0 이라는 뜻이다.

여기서 한단계씩 실행을 눌러보자 F11이 단축키다.

그럼 어디를 실행하고 있는지 변수의 값은 어떻게 변하는지 다 보인다.

이번 예제를 계속 하다보면 i가 11까지 올라가고 hap이 55까지 올라가는걸 볼 수 있다.

 

디버깅을 하면서 for문을 보자

i가 10일 땐 조건식이 참이라서 for문을 실행했다. 그리고 증감식을 실행해서 i가 11이 되었을 땐 조건식이 거짓이라서 for문 밖으로 빠져나온걸 볼 수 있다. 내가 글을 못써서 뭐라카는지 이해를 못한 분들은 디버깅을 하면서 이렇게 작동하는 구나 생각하자.

 

하다보면 이해가 안가거나 원하지 않는 값이 나왔을 때 이런걸 해보면  어떻게 동작하는지, 어디서 잘못했는지 알 수 있다.

'c기초' 카테고리의 다른 글