-for-

사용 예)

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

출력될 명령;


for(int i=0 ; i<5; i++) // i는 0부터 시작해서 5보다 작을때까지 1씩 증가하면서 반복

printf("출력 : %d\n",i); 


출력 화면 


0

1

2

3

4


이런식으로 출력될것이다


-while-

사용 예)

while(조건){

출력될 명령;

}


int i=1,sum=0;

while(i<=100){     // 1부터 100까지 반복

sum+=i ;        // sum=sum+i와 동일

i++;             // i값이 1증가

}

printf("1부터 100까지의 합 : %d\n",sum) 


for문과 비슷하나 초기식은 while문 이전에 있으며 

증감식은 루프 내부에 있고 조건식은 while문 안에 위치해 있다



-do ~ while-

사용 예)

do{

출력될 명령;

}while(조건){

출력될 명령;

}


int i=1,sum=0;

do{

sum+=i;

i++;

}while(i<=100);{

printf("1부터 100까지의 합 : %d\n",sum);

}

while문과 거의 유사하며 최소한 한번은 실행이 된다.

한가지 유의점은 while문이 끝나고 꼭 세미콜론(;)이 들어가야 한다.


----------------------------------------------------------------------

얼핏 다 비슷해보이지만 

반복횟수가 정해져 있을경우에는 for문을

반복횟수가 가변적이고 특정 값을 입력 등 조건이 언제 발생할지 모르는 경우에는 while문을

값을 입력받아야만 반복문을 빠져나올 것인지 계속할 것인지 판단할 경우, 즉 조건을 보기전

최소한 입력을 받아야 하는 경우엔 do~while문이 적합하다.

또한, 반복문은 서로를 대체할수 있어서 각 반복문으로 변환 하는것이 가능하다. 

물론, 안되는 경우도 있다.



'Programing > C' 카테고리의 다른 글

조건문 (if~else ,switch case)  (0) 2014.10.18
배열, 구조체, 포인터  (0) 2014.10.17
printf, scanf 외의 입출력 함수들  (0) 2014.10.17


-if~else - 


사용 예 1)

if(조건식){ //이 조건이 맞다면

조건식이 참이면 실행될 문장;  //실행

}


예 2)

if(조건식){

조건식이 참이면 실행될 문장;

}else{

조건식이 거짓일 경우 실행될 문장;

}


예 3)

if(조건식1){

조건식이 참이면 실행될 문장;

}else if(조건식2){

조건식2가 참이면 실행될 문장;

}

else{

조건식1,2가 거짓인 나머지 경우 실행될 문장;

}


또한 중첩된 if문을 아래와 같이 작성 할 수도 있고 횟수에 제한은 없다.

if(조건식1){

A

if(조건식2){

B;

}

}

이 경우에는 조건식1,2가 전부 참이여만 B가 출력될 것이다.

중첩된 if문을 쓸수 있다는 것을 보여주기 위한 아주 간단한 예를 든것이다.

또한 실행문이 하나일 경우에는 {}중가로를 생략할 수 있지만 실행문이 두개 이상일 경우에는 반드시 {}중가로로 묶어야 한다. 




-switch case - 


사용 예)

switch(변수){                                 //변수값이 

case 1  : 실행될 문장;  break;    //1이라면 실행

case 2  : 실행될 문장;  break;   //2라면 실행

....

default : 실행될 문장; break;     //그외의 경우에 실행

}

여기서 유의할 점은 각 case 값마다 break;를 써주지 않으면 변수 값이 1일 경우에도

끝까지 처리를 하기 때문에 break;를 써서 강제로 빠져나오게 해줘야 한다.

물론 일부러 break;를 안 써주는 경우도 있다.


switch를 이용한 커서 이동 예)






'Programing > C' 카테고리의 다른 글

반복문 (for, while, do~ while)  (0) 2014.10.18
배열, 구조체, 포인터  (0) 2014.10.17
printf, scanf 외의 입출력 함수들  (0) 2014.10.17

배열(array) - 동일한 타입의 데이터의 집합.

ex) int array[10]; // 정수형 변수 10개의 데이터를 가지는 배열 array 선언

이런식으로 10개의 메모리 공간을 확보하게 되는데 

참조 인덱스 번호는 0번지 부터 라는것에 유의   

 array[0]

...중략 

[9] 



구조체(struct) - 서로 다른 타입의 데이터의 집합.

ex) struct{

char name[8];

int age, score;

} student;

name 

age 

score 

   10byte                  4                   4

ex)

student.age=17;

printf("이름 : %s", student.name);

위의 예를 보면 구조체를 참조할 때는 .(점)을 사용하는것을 알수 있다.



포인터(pointer)  - 변수의 메모리 공간 주소를 가리키는 변수.

  포인터는 특정 메모리 주소값을 저장, 그 주소에 할당된 값을 읽어 온다.

cf) *p : p가 가리키는 번지의 값을 읽어라.

&p : p에 기억되어 있는 메모리 주소값을 읽어라.


ex) void main(){

int num = 123; // num을 123으로 초기화

int *pn;          //포인터 pn 선언


pn = &num;    //num의 주소를 pn에 대입

print("num의 값 : %d\n",*pi);   //포인터 pi가 가리키는 번지의 값을 읽어옴

}






'Programing > C' 카테고리의 다른 글

반복문 (for, while, do~ while)  (0) 2014.10.18
조건문 (if~else ,switch case)  (0) 2014.10.18
printf, scanf 외의 입출력 함수들  (0) 2014.10.17

clrscr(); - 화면을 지우고 커서를 좌상단으로 이동시킨다.



gotoxy(x,y); - x,y의 좌표값으로 이동한다 (출력의 길이에 따라 40,12가 중앙이 아닐수도 있음)




puts("문자"); - 문자열만 출력할때 사용, printf에 비해 간편하고 빠르다.



gets(변수); -  scanf와 비슷하나 scanf와는 달리 공백(space) 입력도 받을 수가 있다.

*참고 : scanf로 문자열을 입력 받을 시에는 &를 쓰지 않는다

ex) scanf("%s",&str); (X)

     scanf("%s",str); (O)



putch(); - 문자 하나만 출력 한다.



getch(); - 문자 하나만 입력 받는다.



delay(n); - n만큼의 시간 지연, 1/1000초 단위.



exit(0); - 프로그램 종료 (문제가 없을시엔 0을, 문제가 있을시엔 1을 리턴하는게 보통이라고 한다.)



kbhit(); 혹은 _kbhit(); - 키 버퍼에 값을 확인하여 키가 눌렸나 안눌렸나 판단이 가능하다. 

   값이 있으면 참을 반환.


간단한 사용의 예










 



'Programing > C' 카테고리의 다른 글

반복문 (for, while, do~ while)  (0) 2014.10.18
조건문 (if~else ,switch case)  (0) 2014.10.18
배열, 구조체, 포인터  (0) 2014.10.17

+ Recent posts