과학

조루년들아 몇개만 찍싸고 도망가냐 -1- (프로그래밍, C언어)

반갑다 게이들아.

 

이 글은 출입력 함수만 찍! 싸고 도망간 개새끼들때문에 내가 이어서 쓰는 글이다.

 

미리 말하는데, 이 글의 강의의 종착역은 '포인터' 까지이다.

 

왜? 내맴이다!

 

 

 

 

 

1. 반복문

 

반복문이란 이름 그대로 반복하는 문장. 이라고 이해하면 편하다.

 

이 반복문은, 어떠한 조건을 만족할 때, 특정한 행동을 하는 역활을 한다.

 

기본적인 반복문은 세가지로 나뉘면 for, while , do while문이 존재한다.

 

 

1-1 For문

 

 

 

for 문의 구성은 이렇다.

for(초기식,조건식,증감식)

Ex: for(a=0;a<10;a++)

 

두뇌회전이 빠릿빠릿하지 않은 게이들을 위해 뜻을 설명해줄게.

 

초기식 = 변수의 초기화

( Ex: 변수가 a라고 한다면, a=10 와 같이 고정된 수를 넣어주는 것을 '초기화'라고 한다. 그렇기에 초기화를 하는 식. 이라 하여 '초기식' 이라고 하는거야.)

 

조건식 = 조건을 제시하여 조건이 참이면 반복문을 실행

( Ex:  a가 10일때, 혹은 a가 10보다 작을때 등의 조건을 제시하고, 그 조건이 만족하지 않을 때 까지 무한히 반복문이 실행된다. 그렇기에 조건을 제시하는 식. 이라 하여 '조건식')

 

증감식 = 한번 반복문이 끝날 때마다 증가. 혹은 감소하기를 원하는 변수를 작성

( Ex: 위에서 말했다시피, 반복문은 조건이 만족하는 동안은 무한히 실행하기 때문에, 조건이 만족하지 않을 수 있도록 조건식에 서술한 변수의 값을 증가, 혹은 감소시켜 반복문을 빠져나갈 수 있게 해주는 부분. 그렇기에 증가, 혹은 감소를 시킨다 하여 '증감식')

* 여기서, 증감식은 한번 반복문이 끝나야지만 증가,혹은 감소한다는걸 기억해 둬! *

 

 

 

예시를 줄게.

 

내가 반복문을 사용하여 1부터 10까지 순서대로 출력되는 프로그램을 만들고 싶다!

 

그렇다면 우선, 1~10까지의 수를 입력받을 변수를 만들어야 겠지?

 

int soo

 

1~10까지 수이므로 처음 초기화 해줄 값은 1.

 

soo=1;

 

1~10까지의 조건이므로 제시할 조건은 soo가 10보다 작거나 같을 때.

 

soo<=10

 

1~10까지 차례를 지나갈 수록 증가하는 수는 +1 이므로, 반복문이 끝날때마다 사용할 증감식은 +1.

 

soo++

 

이렇게 완성되는 for문은

 

int soo;

for(soo=1;soo<=10;soo++)

 

이 되겠지?

 

여기서 끝이 아니라, 숫자를 출력해야 하기에 printf 함수 또한 사용해.

1부터 10까지의 숫자를 받는 변수는 soo이니, soo와 줄변경만 넣어주고 그대로 출력해서 사용해보자.

 

printf(%d\n",soo);

 

그럼 한번 확인을 해 보자 게이들아!

 

#include <stdio.h>

void main()
{
 int soo;
 for(soo=1;soo<=10;soo++)
 {
  printf("%d\n",soo);
 }
getchar();
}

 

getchar문은 char(문자형 변수)를 get(얻다)한다 하여 getchar라고 불리워.

손쉽게 말하면 scanf문과 비슷한 역활을 한다고 봐야겠지.

전에 글싼 게이중 한명이 getchar문을 사용하던데, 이는 작성된 코딩이 모두 실행되면 자동으로 종료가 되어 결과를 보기가 드럽게 힘든 컴파일러 때문에 사용하지. 굳아이디어!

 

자, 만약 저대로 실행을 한다면 결과는 이래.

 

1

2

3

4

5

6

7

8

9

10

 

어때? 목표대로 1부터 10까지의 수를 출력하는데 성공했어.

 

만약에, 반대로 10부터 1까지의 수를 출력하고 싶으면, for문을 이렇게 수정해주면 돼.

 

시작하는 숫자는 10이니

 

soo=10

 

10에서 1까지 출력해야 하므로 1과 같거나 클 때만 반복문이 실행되어야 겠지?

 

soo>=1

 

10,9,8,7,6,5,4,3,2,1은 차례대로 1씩 감소하여야 하므로 그대로.

 

soo--

 

이렇게 다시 수정되어 완성된 for문의 형태는 이래.

 

for(soo=10;soo>=1;soo--)

자. 다시 실행해보자!

 

#include <stdio.h>

void main()
{
 int soo;
 for(soo=10;soo>=1;soo--)
 {
  printf("%d\n",soo);
 }
getchar();
}

결과값은 당연히

 

10

9

8

7

6

5

4

3

2

1

 

이런 형태가 돼.

 

이걸로 시벌 for문은 끝! 응용은 니네가 연습해라 게이들아!

 

 

1-2 While문

 

While문은 for문을 배웠다면 무척 손쉬워. 구성을 보자면 이래.

 

while(조건식)

 

위에 보다시피, while() 안에 포함되어야 하는건 조건식 뿐이야,

* 단, 초기식은 while문을 선언하기 전에 미리 선언하여야 하며. 내부에 증감식을 넣어야 정상적으로 반복문에서 탈출이 가능해. *

 

이번에는 while문을 통해 20 이하의 수를 1부터 차례대로 출력해볼게.

 

일단 변수의 초기화부터 해야겠지?

 

int soo=1;

 

이어서, while문과 조건식을 적어야 해.

 

20까지 출력하여야 하니 soo는 20보다 작거나 같아야 한다! 를 사용해도 되고, 21보다 작아야 한다! 를 사용해도 되므로 아무거나 사용해볼게.

 

while(soo<21)

 

숫자를 출력하기 위해 printf문을 사용하여야 하므로.

 

printf("지금 숫자는 %d.\n",soo);

 

마지막으로, 증감식이 있어야 겠지? 마찬가지로 1씩 증가하므로

 

soo++;

 

종합하자면 이래.

 

#include <stdio.h>

void main()
{
int soo=1;

while(soo<21)
{

printf("지금 숫자는 %d.\n",soo);
soo++;

}
getchar();
}

 

결과 값은?

 

 

지금 숫자는 1.

지금 숫자는 2.

지금 숫자는 3

.

.

.

지금 숫자는 19.

지금 숫자는 20.

 

 

이양싱낭당!! 성공했네.

 

이걸로 while문도 끝!

 

 

1-3 do~while문

 

 

와. 이제 마지막이네!

빠르게 설명하도록 할게.

 

do~while문은, 위의 반복문과 다른 큰 차이점이 있어.

 

바로

 

* '조건에 상관없이 최소 한번은 실행을 한다' 라는거야 *

 

무슨 말이냐면, 위의 for,while문의 경우는 조건이 만족하지 않으면 실행되지 않고 반복문을 바로 빠져나가 버려.

 

만약에 a=5인데, 조건이 a==2 라고 생각해보자.

 

for,while문이라면 실행되지 않았겠지?

 

하지만 do~while문은 조건이 맞던 틀리던 한번 실행이 되버려.

 

왜 그렇냐면, do~while문의 경우는 반복문이 끝나고 조건을 검사하기 때문이거든.

 

 

가게로 치면, 이 병신은 돈없는 거지새끼가 프링글스를 가져가서 먹는거 구경만 하다가 다 쳐먹을때 쯤에서야 설렁설렁 와서 돈이 있는지 확인을 한단 소리야.

 

do~while문의 형태는 이래.

 

 

do

{ 반복문의 내용 }

while(조건식);

 

 

한번 확인을 해보자. 아래는 예시야.

 

 

 

#include <stdio.h>

void main()
{

int soo=1;

 

do

{

 

printf("지금 숫자는 %d.\n",soo);

soo++;

 

}

 

while(soo==2);

getchar();

}

 

 

soo=1 이지만, do~while문은 최소한 한번은 실행한다고 했지?

 

그렇기에 printf함수를 거쳐 soo++에 도달하여 조건을 검사받게 돼.

 

하지만 1에서 다시 1이 증가했기에, soo는 조건을 만족하게 되었어.

 

그렇기에 다시 do로 돌아가 또 한번 실행을 받고, 3이 되서야 풀려나게 되었지.

 

위와 같이 do~while문을 사용할 땐 '조건에 맞던 맞지않던 무조건 한번은 실행하게 된다.' 라는걸 기억해 주었으면 해.

 

이제 끝났으니 꺼져 피곤하다.

 

 

 

10개의 댓글

2013.12.19
일단 패기는 인정 ㅊㅊ
지켜봄
0
2013.12.19
지켜보다.
0
이렇게 다시 수정되어 완성된 for문의 형태는 이래.

for(soo=1;soo<=10;soo++) -> for(soo=10;soo>=1;soo--)

수정해라
0
2013.12.19
@아가리싸물어줬으면좋겠다
고맙다 후로게이야
이제 닉값하러 꺼져라
0
2013.12.19
포인터까지 욜... 아무도 거기까진 도달 못했지

열시미 해봐라
0
2013.12.19
이것도 찍싼다에 니 손목을 건다
0
이번엔 어디까지 갈까? 우선 ㅊㅊ 줌
0
2013.12.20
double data = new double* data[];
0
2013.12.27
@蘇酒
무슨 의미로 단거냐;;
0
2013.12.20
뭐라는지 모르겠다 그냥 존나 가만 있어야겠다.
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
563 [과학] 경계선 지능이 700만 있다는 기사들에 대해 34 LinkedList 12 21 일 전
562 [과학] 번역)새들은 왜 알을 많이 낳는가? - 후투티의 형제살해 습성... 7 리보솜 3 2024.03.23
561 [과학] 학계와 AI, 그리고 Bitter Lesson (쓰라린 교훈) 26 elomn 35 2024.02.17
560 [과학] 지구의 속삭임, 골든 레코드의 우주 9 Archaea 10 2024.02.16
559 [과학] 잔혹한 과학실험 이야기 <1> 절망의 구덩이 19 개드립하면안됨 37 2024.02.15
558 [과학] 스트레스를 받으면 술이 땡기는 이유 12 동식 16 2024.02.10
557 [과학] 지능은 모계유전이 아니다. 40 울릉특별자치도 35 2024.01.26
556 [과학] 진화를 생각할 때 고려할 것들 23 날씨가나쁘잖아 12 2024.01.17
555 [과학] 학문적(과학적) 접근과 유사 진화심리"학" 26 날씨가나쁘잖아 19 2024.01.15
554 [과학] 호모 사피엔스의 야릇한 은폐된 배란에 대한 남녀 학자의 다... 14 개드립하면안됨 15 2023.12.29
553 [과학] 김영하의 작별인사를 읽고 느낀 점 (스포있음) 21 장문주의 2 2023.11.28
552 [과학] 제4회 포스텍 SF 어워드 공모전 ( SF 단편소설 / SF 미니픽션 ) 2 따스땅 1 2023.11.25
551 [과학] 펌) CRISPR 유전자 가위 치료제 "최초" 승인 12 리보솜 7 2023.11.25
550 [과학] 러시아는 기술산업을 어떻게 파괴시켰는가(펌) 9 세기노비는역사비... 15 2023.11.18
549 [과학] 고양이에 의한 섬생태계 교란과 생물 종의 절멸 (펌) 2 힘들힘들고 6 2023.11.16
548 [과학] 번역) 알츠하이머병 유전자는 어떻게 살아남았는가? 12 리보솜 10 2023.11.15
547 [과학] 『우영우』의 자폐 스펙트럼 장애 개념이 왜곡인 이유 (펌) 47 힘들힘들고 10 2023.11.12
546 [과학] 흑수저 문과충 출신 구글 취직하는 파이썬 특강 -1 14 지방흡입기 11 2023.09.27
545 [과학] 국가별 당뇨 유병율 이거 뭐가 바뀐건지 아는사람? 8 LAMBDA 1 2023.09.27
544 [과학] 물샤워 ㅇㅈㄹ 하는 놈들 봐라 171 철동이 48 2023.09.23