c언어 프로그래밍 기초 문법 

 

반복문

 

 

반복문이란 주어진 조건이 만족하면 반복하는 ‘제어문’이고 조건이 만족할지 않을 때까지 반복한다. 조건식에 들어가는 변수는 ‘조건변수’이며, 이 조건변수를 다루는 것이 반복문 사용에서 가장 중요하다. 조건변수의 용도는 몇 번 반복하며 값을 사용할지 결정하는 용도로 사용된다.

C언어에서 반복문은 3가지 경우가 있다.

 

 

 

1. for문

 

for문의 기본 사용형태는 다음과 같다.

 

for ( 초기식; 조건식; 증감식) // 3개의식
{
	수행문
}

 

초기식은 최초 한 번만 수행한다. 조건식은 조건이 참(True)이면 수행문을 수행하고,

증감식은 수행문을 수행 후 수행된다. for문의 수행 순서는 다음과 같다.

3개의 식들은 각각 생략이 가능하며, 모두 생략한 경우 항상 참(True)으로 간주한다.

즉 무한반복을 의미한다.

 

1. 초기식 수행
2. 조건식 판별
3. 수행문 수행 (조건이 참일 때)
4. 증감식 수행
5. 조건식 판별부터 반복 (조건 → 수행 → 증감 → 조건 → 수행 → 증감 ···)

 

 

 

2. while문

 

while (조건식)
{
수행문
}

 

if문과 구조는 같으나, 수행문이 끝난 후에 조건식으로 넘어가서 조건을 판별하는 것이 차이점이다. while문의 수행 순서는 다음과 같다.

 

1. 조건식 판별
2. 수행문 수행
3. 조건식 판별부터 반복 (조건 → 수행 → 조건 → 수행 ···)

 

 

3. do ~ while문

 

while문과 다르게 do~while문은 무조건 수행문을 1회 수행 후, 조건식을 판별한다. 그리고 또 다른 차이점은 조건식 뒤에 세미콜론(;)을 붙인다. 이 점을 주의하길 바란다.

 

사용형태는 다음과 같다.

 

do
{

수행문

} while (조건식);

 

※ 반복문, 조건문에서 사용하는 기능

 

1) break

현재 진행 중인 반복문을 빠져나간다. 주로 switch 조건문에서 사용한다.

 

2) continue

다음 수행문 코드를 진행하지 않고 다음 식으로 ‘점프’한다. continue는 반복문에서만 사용한다.

 

반응형

C언어 프로그래밍, C언어 기초 문법 

조건문(Conditional)

 

조건문은 주어진 조건에 따라 프로그램의 흐름을 바꾸고, 주어진 조건에 만족할 때 수행하는 ‘제어문’이다.

C언어에서 조건문은 2가지 형태로  사용한다.

 

1.if

 

if문은 가장 대표적인 조건문이다. if문의 기본 문법은 다음과 같다.

 

if(조건문){
	실행문1;
	실행문2;
}

 

 

조건식의 결과가 참(True)이면 중괄호 내부의 실행문들이 실행된다. 만약 조건식의 결과가 거짓(False)이면 실행문을 실행하지 않고 중괄호 밖의 다음으로 넘어간다. 조건식은 보통 비교 연산자를 사용해서 참, 거짓을 판별하는 경우가 많다. 그리고 조건식에 특별한 연산자 없이 숫자만 사용할 경우, 0(거짓)이 아닌 음수를 포함한 모든 숫자는 참으로 간주해서 수행문을 수행한다.

 

 

 

 

2. if~else문

 

 

조건식이 여려 경우일 때 if~else문을 이용할 수 있다. 다음과 같이 사용한다.

 

if ( 조건식1 )
{
	수행문1;  // 조건식1이 참일 경우 수행문1 실행
}
else if ( 조건식2 )
{
	수행문2; // 조건식1이 거짓이고, 조건식2가 참일 경우 수행문2 실행
}
else
{
	수행문3; // 조건식 1,2가 모두 거짓일 때 수행문3 실행
}

 

 

if문의 조건식1이 참이면 수행문 1을 수행하고 끝이 나고, 거짓이면 else if문의 조건식 2로 넘어간다. 만약 조건식 2가 참이면 수행문 2를 수행하고 조건문을 빠져나가며, 거짓이면 else문의 수행문 3을 수행 후 조건문을 빠져나간다.

else if문의 사용 수 는 제한이 없으며 조건의 수에 따라 결정하면 된다. else문은 조건식을 적지 않으며, 위의 모든 조건식들을 만족하지 않을 시 수행문을 수행하는 역할을 한다.

 

참고로, if문에서 수행문이 한 줄일 경우 중괄호를 사용하지 않아도 된다. 하지만 코드가 길어질 경우 수정 작업이 힘들어진다. 따라서 중괄호를 하는 습관을 들이는 것이 좋다.

 

 

 

3. switch~case문

 

하나의 조건으로 많은 경우의 수를 처리하고자 할 때 사용한다. switch의 조건식 결과는 ‘정수’만을 허용한다.(반드시 연산이 가능해야 한다) 그리고 case문의 값은 ‘정수 상수’만 가능하며 중복이 불가능하다. 이 구문에서 가장 중요한 것 중 하나가 바로 ‘break'다. break는 스위치 문을 빠져나가게 하는 기능을 가지고 있다. 만약 case를 만족하고 수행을 했는데, break가 없다면 그 아래 있는 모든 case는 만족한 것으로 간주해 스위치 문이 끝날 때까지 전부 수행하게 된다. 사용법은 다음과 같다.

 

switch(조건식)  // 연산 가능한 조건식
{
case 정수상수:
	수행문1;
	break;
case 정수상수:
	수행문2;
	break;
default :
	수행문;
}

 

위 구문은 조건식의 결과에 따라 해당하는 case문의 수행문을 수행하고 break를 만나면 스위치문을 빠져나간다. 여기서 default는 if문에서 else와 같이 모든 case의 경우가 해당되지 않을 때 수행하는 구간이다.

 

if문과 switch문은 서로 표현방식만 다를 뿐 기능은 같다. 따라서 코드를 작성할 때 알맞은 방식을 선택해 사용하면 된다.

 

 

예제

#include <stdio.h>

void main()
{
	int iAge = 0;
	printf("나이를 입력하세요 : ");
	scanf("%d", &iAge);

	// 조건식에는 보통 비교연산자를 사용 (참이면 1, 거짓이면 0)
	if (iAge > 19) // 조건식 
	{
		int iValue = 1; 	
		printf("성인입니다.\n");
		printf("iValue = %d\n", iValue);
	}
}

 

#include <stdio.h>

void main()
{
	// switch ~ case 응용
	// ~ 월을 입력 받고, 계절 출력 
	int iMonth = 0;
	printf("현재 월을 입력하세요 : ");
	scanf("%d", &iMonth);

	switch (iMonth)
	{
	case 3:
	case 4:
	case 5:
		printf("봄\n");
		break;
	case 6:
	case 7:
	case 8:
		printf("여름\n");
		break;
	case 9:
	case 10:
	case 11:
		printf("가을\n");
		break;
	case 12:
	case 1:
	case 2:
		printf("겨울\n");
		break;
	default :
		printf("잘못 입력하였습니다.\n");

	}
}
반응형

파이썬 기초 문법 

 

1. 주석(Comment)

 

  • 소스에 설명을 추가하는 것
  • 프로그램 수행에 영향이 없다.
  • 한 줄 주석 : # 뒤부터 주석 처리
  • 여러줄 주석 : ''' ''' 또는 """ """
    - 작은 따옴표 3개 또는 큰 따옴표 3개로 묶는다.
'''
	여러줄
    주석처리

'''
""" 
	여러줄
	주석처리 
"""

 

 

2. 문자열 (String)

 

파이썬의 기초 자료형 중의 하나로 문자의 나열을 말한다. 문자열을 만들려면 "abc"나 'abc' 처럼 따옴표로 묶는다.

str1 = "파이썬 Python"
str2 = "1234"

 

 

3. print( ) 함수

 

화면으로 데이터(숫자, 문자열 등)를 출력하는 함수


- 함수 : 특정 행위를 하기 위해 미리 만들어 놓은 기능

- 화면 : IDLE이나 콘솔(cmd.exe)

- 구분기호 : 콤마(,)로 값을 나열할 때 값을 구분하는 기호로 기본 값은 공백(sep = ' ') 이다.

 

print(1, 2, 3, sep = ' ')
print(1, 2, 3, sep = '') # 직접 지정 가능
print(1, 2, 3, sep = '하') 
# 출력
1 2 3
1 2 3
123
1하2하3

 

- 마지막기호 : print( ) 함수의 출력이 끝나면 출력하는 기호로 값은 '개행(줄바꿈) (end = \n)'    이다. 여기서 \n은 줄바꿈을 의미하는 특수한 문자(이스케이프 문자)이다.

 

print("안녕") # end를 따로 입력하지 않으면 기본이 개행
print("하세요", end = '\n')
print("안녕", end = '') # 직접 지정 가능
print("하세요", end = '하하하')
# 출력
안녕
하세요
안녕하세요하하하

 

- print( ) 함수에서 사용되는 기본적인 연산자

  + 기호 , 기호
용 도 연 산 --> 하나의 값을 만든다 나 열 --> 여러 값을 나열한다
print(1 + 2) # 숫자 + 숫자 ==> 덧셈 연산
print("1 + 2 =", 1 + 2)
print("1" + "2") # 문자열 + 문자열 ==> 문자연결 (하나의 문자를 만든다.)
print("1" "2") # 문자열끼리는 기호 없이 연결 가능
# 출력
3
1 + 2 = 3
12 # 정수 숫자가 아닌 문자열임
12 # 문자열

 

 

 

4. 변수 (Variable)

 

- 값을 저장하는 공간, 파이썬에서 사용하는 변수는 값을 '저장' 하는 개념이 아니라 값을 '가리킨다.'

- 프로그래밍 언어에서 = (equl, 등호) 기호는 '같다'가 아닌 '대입'으로 우변의 값을 좌변에 대입하는 것이다.

- 파이썬에서 변수를 만들때 변수명 앞에 따로 자료형(정수, 실수, 문자열 등)을 표시를 하지 않는다

- 변수명 규칙

 

① 한글 사용 가능 --> 그래도 영어로 한다.


② 특수문자(기호)는 _만 사용


③ 대소문자 구분


④ 숫자 사용 가능, 단 첫 글자로는 안된다.


⑤ 예약어 사용 불가

- 이미 시스템에서 사용하고 있는 단어
- 색상이 들어간 단어 사용금지

 

⑥ 변수명을 지을 때 의미를 부여

- 변수명만 봐도 어떤 값을 사용하는지 알 수 있도록

# 변수명 짓기 예시
#숫자 --> num1, num2, ...
#문자열 --> str1, str2, ...
#점수 --> Score1, Score2, ...
#학생 점수 --> StudentScore1, StudentScore2, ...

 

- 변수에 값 대입

# 변수에 값 대입 (1) - 하나씩
a = 1 # a라는 변수에 1을 대입
b = "2"
c = 3

print(a, b, c) # 각 변수가 가리키고 있는 값을 사용

# 변수에 값 대입 (2) - 한 번에
a, b, c = 4, 5, 6 # 순서대로 대입, 짝이 맞아야 된다.
print(a, b, c)

# 변수에 값 대입 (3) - 모두 같은 값
a = b = c = 7
print(a, b, c)
# 출력
1 2 3
4 5 6
7 7 7

 

반응형

 c언어 프로그래밍, 기초 문법

 

프로그래밍 언어는 일반적으로 수학에서 사용하는 연산기호와 유사한 연산자들의 집합을 지원한다. 다음에 C언어에서 사용되는 여러 가지 연산자들이 있다.

 

1. 기본 연산자

 

 

연산자

기능

+

덧셈

-

뺄셈

/

나누기

*

곱하기

%

나머지 값

 

 

2. 복합 대입 연산자

 

대입 연산자(=)에 다른 연산자가 합쳐진 것이다. 예를 들어 +=, -=, /=, >=, <= 등이 있다.

이것은 자연스레 많이 사용하게 되는 연산자이므로 가볍게 알고 넘어가면 된다.

 

 

3. 단항 연산자

 

단항 연산자는 항이 하나밖에 없는 경우(피연산자가 1개)다.

연산자

기능

++, --

피연산자 값을 1 증가 또는 1 감소

-(부호 연산자)

피연산자 값에 부호 적용

 

 

4. 비교 연산자

 

비교 연산자는 밑에서 나올 조건문과 반복문에서 ‘조건식’으로 사용이 된다. 조건을 만족하면 정수 1 즉, True(참)을 반환하고, 조건을 불만족하면 정수 0 즉, False(거짓)을 반환한다.

C언어에서는 0이 아닌 모든 값을 ‘참’으로 간주한다. 여기서 모든 값이란 0이 아닌 음수를 포함한 모든 숫자, 문자 등을 의미한다. 비교 연산자에는 등가 비교와 대소 비교가 있다.

 

연산자

기능

==

같다

!=

다르다

<

크다

>

작다

>=

크거나 같다

<=

작거나 같다

 

 

5. 논리 연산자

 

연산자

기능

&&

AND연산자, 둘 다 참이면 참, 하나라도 거짓이면 거짓

| |

OR연산자, 둘 중 하나라도 참이면 참, 둘 다 거짓이면 거짓

!

참 / 거짓의 결과를 반대로

 

비교 연산자와 같이 조건문과 반복문의 ‘조건식’에서 사용된다. 조건을 만족하면 정수 1(참) 반환, 조건을 불만족하면 정수 0(거짓)을 반환한다.

OR 연산은 좌측 식이 참이면 우측식을 연산하지 않고 바로 참이 된다. AND 연산은 좌측식이 거짓이면 우측식을 연산하지 않고 바로 거짓이 된다. 이렇게 되는 이유는 불필요한 연산을 줄여 프로그램 메모리 낭비를 줄이기 위해서다. 참고로 모든 연산자들에는 우선순위가 있기에 여러 가지 연산자들을 사용할 때에는 반드시 ( )를 하는 습관을 들이는 것이 좋다. 소괄호를 제대로 하지 않으면 원하지 않는 결과가 나올 수 있다.

 

 

6. 비트 연산자

 

연산자

기능

&

AND, 둘 다 1이어야 1, 아니면 0

|

OR, 둘 중 하나만 1이면 1, 둘 다 0이면 0

^

XOR, 두 값이 다르면 1, 같으면 0

~

비트 전환, 0은 1로, 1은 0으로

<<

비트를 좌측으로 쉬프트(이동)

>>

비트를 우측으로 쉬프트(이동)

 

비트 연산은 2진수로 연산을 하며, 일반적인 연산보다 속도가 빠르다. 왜냐하면 컴퓨터는 값을 bit단위로 저장하고 있기 때문이다. 그 차이가 크지 않기 때문에 굳이 비트 연산을 사용하지 않아도 무방하다. 가독성이 떨어지기 때문에 꼭 필요한 경우에 사용하면 된다.

 

 

 

7. 조건 연산자 (삼항 연산자)

 

삼항 연산자의 형태는 ‘조건식 ? 식1 : 식2“이다.

조건식이 참(1)이면 식 1을 수행하고, 조건식이 거짓(0)이면 식 2를 수행한다. 코드에 ? 가 있다면 삼항 연산자이니 콜론(:)을 찾아 식을 구별하면 된다.

 

 

8. 형 변환

 

형변환은 자료형의 변환을 의미한다. 2가지 형태로 형 변환을 할 수 있다.

 

1) 자동 형변환

C언어에서는 기본적으로 형변환을 해주는 기능이 있다. 먼저, 정수에서 실수로 형변환이 될 경우 없던 소수점이 생긴다. 하지만 오차가 발생할 가능성이 있어 사용자가 주의를 해야 한다.

두 번째로 실수에서 정수로 변환이 될 경우 소수점 이하의 수는 소멸하고 정수 부분만 남는다.

마지막으로 큰 타입 정수를 작은 타입의 정수로 변환이 이뤄진다.

 

2) 명시적 형변환(Casting)

값 앞에 (type)을 명시하여 변환하는 방식이다. 예를 들어 (int) 3.14 --> 3처럼 실수를 명시적으로 정수 형태로 변환한다.

 

반응형

+ Recent posts