프로그래밍[Univ]/C언어

c언어 세미나...

Cloud Travel 2009. 4. 5. 15:54

1. if와 if else

 

 if 영어로 우리는 "만약에" 라고하져...

 if 의 문법은 다음과 같습니다.

 

 if ( 조건부 ) {

     실행부

 }

 

 조건부가 맞는다면 실행부가 실행됩니다.

 예를 들어,

 

 int i = 0;

 if ( i == 0 ) {

  printf("%d\n",i);

 }

 이런 것이 메인에 있다면, i 가 0과 같다면, printf가 실행되고, 그게 아니면 if문을 건너 띄고 실행됩니다.

 

 영어에서 if가 있다면 else도 있습니다. else는 if와 붙어서 "그렇지 않다면" 이라고하져...

 else의 문법은 if와 비슷합니다.

 

 if ( 조건부1 ){

   실행부1

 }else if( 조건부2 ) {

   실행부2

 }else{

   실행부3

 }

 조건부1에 맞다면 실행부 1이 실행되고 조건부2에 맞다면 실행부2.. 조건부1과 조건부2에 맞지 않다면 실행부3이 실행됩니다.

 예를들어,

 

 char c;

 scanf ("%c",&c);

 if ( c == '+' ) {

  printf("%c\n",c);

 }else if ( c == '-' ) {

  printf("%c\n",c);

 }else{

  printf("%c : error\n",c);

 }

 

 이런것이 있다면, c에 문자를 받아서, c가 +라면 +가 출력되고, c가 -면 -가 출력되고, 둘다 아니면 error과 그 문자를 출력하게됩니다.

 

2. if문을 배우면서 배운 여러가지 연산자

 ⓐ <, >, >=, <=, ==

   <, >, >=, <=은 수학에서 다 배웠듣이 부등호입니다. 세미나에서 봣을때 가장 색갈려하는 부분은 == 인것 같습니다.

 

  = 는 이전에 우리가 썻듯이 대입할때 쓰는 연산자입니다. 그외 두 개가 같은지를 알아보기 위해서는 ==를 써야됩니다.

 

 if ( a = 1 )  // 이렇게 쓴다면 a에 1을 대입하고 if문을 실행할 것입니다.

 if ( a == 1 ) // 이렇게 쓴다면 a가 1과 같은지를 판단하고, 결론을 내려 실행할 것입니다.

 

 ⓑ &&, ||

  &&는 그리고라고 하며 and라고 생각하면됩니다. 우리가 if문에서 조건을 쓸때 어떤 숫자가 0<a<10 을 나타내고 싶다면

  if (( a > 0 )&&( a < 10 )) 이렇게 써 줘야합니다.

  컴퓨터는 각 하나의 연산에 대해서만 결론을 내릴수 있기때문에 &&를 써서 나타내야됩니다.

 

  if ( 조건1 && 조건2 && 조건3 &&.....){ 실행부 } //조건1, 조건2, 조건3, ....의 조건을 만족해야지 실행부가 실행되는 것이죠

 

  ||는 또는이라고하며 or라고 생각하면됩니다. 우리가 어떤 숫자가  a < 0 , a > 100 의 조건을 나타내고 싶다면

  if ((a < 0 )||(a > 100 )) 이렇게 써주면됩니다.

  컴퓨터는 위에서(&&)를 설명할때와같이 하나씩 연산을 하기때문에 다음과같이 나눠서 써줘야됩니다.

 

  if ( 조건1 || 조건2 || ... ){ 실행부 } // 조건1, 조건2, ...의 조건중 하나만 맞는다면 실행부가 시작됩니다.

 

3. getchar와 putchar

 우리가 프로그램을 배울때 getchar와 putchar를 겟차, 풋차 라고하지만 정식명치은 getcharacter, putcharacter라고합니다.

 getcahr와 putchar는 한 문자를 받고 한문자를 출력할때 씁니다.

 

 하지만, getchar와 putchar를 쓸때 우리는 char타입이아닌 int타입을 사용합니다.

 왜 그럴 까요?

 컴퓨터는 ASC||(아스키코드)라는 것으로 문자를 생각해냅니다.

 아스키코드는 여러나라의 문자를 각각의 숫자에 대입하여 사용 하는 코드를 일컷습니다.

 putchar와 getchar는 아스키코드를 사용하여 입력과 출력하는 것입니다. 

 

 int c;

 c = getchar();

 putchar(c);

 

 이렇게 쓴다면 c에 하나의 문자를 받아 putchar로 출력하는 프로그램이 됩니다.

 

 int c;

 c = getchar();

 putchar(c);

 printf("%d",c);

 

 이렇게 int형에 문자를 받았기 때문에 printf를 이용하여 그 문자에 해당하는 아스키코드 숫자를 알아 낼수 있습니다.

 

 세미나때 a의 아스키코드가 97입니다. 라는 것을 출력하는 프로그램을 만들 었을 것이다.

 

  putchar(97);

 이렇게 해주면 a가 출력된다. 즉 putchar(아스키코드)를 해도 되는 것이다.

 

4. while

 while문은 반복문중 하나로 조건을 검색하고 조건이 맞는다면 조건과 맞지 않을때까지 실행하는 것을 말한ㄷ.

 문법은 다음과 같다.

 

 조건변수 초기화

 while ( 조건변수 확인 ) {

   실행부

   조건변수 변경

 }

 

 while문을 들어가기전에 조건변수를 초기화 해주고, 조건변수를 확인하여 조건이 맞다면 실행부를 실행하고

 조건변수를 변경하는 것입니다. 만약, 조건 변수를 변경하지 안흔다면 whlie문의 조건변수 확인이 항상 참이되어 무한 반복을 할

 것 입니다.

 

 int i;

 i = 0;

 while ( i < 5 ) {

  pirntf("%d실행\n",i);

  i++;

 }

 

 이렇게 본다면, 결과로 0실행//1실행//2실행//3실행//4실행// 후 종류가 될것입니다.

 

5. for

 for문은 whle문의 여러가지를 한줄로 줄일 수 있는 것이라고 생각하면됩니다.

 바로 문법을 본다면 다음과 같습니다.

 

 for ( 조건변수 초기화 ; 조건변수 확인 ; 조건변수 변경 ){

  실행부

 }

 

 위의 while문과 비교하면 여러가지 비슷한점을 발견할수 있습니다.
 0실행//1실행//2실행//3실행//4실행//를 출력하는 것을 for문으로 만든다면

 

 for ( i  = 0 ; i < 5; i++ ){

  printf("%d실행\n",i);

 }

 가 된다.

 

6. do while문

 do while문은 while의 변형모드로 일단 실행부를 실행하고 조건을 검색한다.

 문법을본다면

 

 조건변수 초기화

 do {

   실행부

   조건변수 변경

 } while ( 조건변수 확인 ) ;

 

 이렇게 된다. 예는 쓰지 않겠다. 나도 잘안 쓰니깐 =ㅅ=;;

 

7. 배열...

 

 다음에 다시한다고 하니 패스 하겠다.