반응형
# C언어
- 헤더는 #include라는 키워드를 이용하여 사용한다.
- 헤더에 표준 입출력을 위해서 stdio.h 라는 헤더를, 문자열 사용을 위해서는 string.h라는 헤더를 사용한다.
- main 함수는 프로그램의 시작점이다.
- printf는 stdio.h 안에 있는 함수로 C언어에서 출력을 위해 사용한다.
#include <stdio.h>
void main() {
printf("Hello C World\n");
}
// 출력 결과 : Hello C World
- stdio는 Standard Input Output의 약자
- 메인은 프로그램의 시작 위치
- printf는 출력을 위한 C언어 함수로, 큰 따옴표 내에 있는 글자 출력, 큰따옴표 내의 \n은 개행을 의미.
# C++언어
- 헤더는 #include라는 키워드를 이용하여 사용한다.
- 헤더에 표준 입출력을 위해서 iostream이라는 헤더를, 문자열 사용을 위해서는 string이라는 헤더를 사용한다. (C 언어와 달리, h를 빼고 작성하는 것이 일반적이다.)
- main 함수는 프로그램의 시작점이다.
- cout는 iostream 안에 있는 함수로 C++ 언어에서 출력을 위해 사용한다.
- std는 네임스페이스로 개체를 구분할 수 있는 범위를 나타내기 위해 사용한다.
#include <iostream>
void main() {
std::cout << "Hello C++ World";
std::cout << std::endl;
}
// 출력 결과 : Hello C++ World
- iostream은 Input/Output Stream의 약자
- 메인은 프로그램의 시작 위치
- cout은 출력을 위한 C++ 언어 함수로 << 연산을 사용하여 출력값을 연결하고, 큰 따옴표 내에 있는 글자를 출력
- endl은 개행을 위한 함수
# 자바 언어
- 객체지향 언어이기 때문에 클래스를 생성해야 한다.
- public class 클래스 이름 { } 구문을 통해 클래스를 생성한다.
- main 함수는 프로그램의 시작점이다.
- System.out.print는 자바 언어에서 출력을 위해 사용한다.
- System.out.println은 System.out.print와 동일하지만 큰 따옴표 내의 글자를 출력한 후 한 줄을 개행한다.
public class A {
public static void main(String[] args) {
System.out.print("Hello Java World");
}
}
// 출력 결과 : Hello Java World
- A는 클래스 명으로 파일 이름과 동일해야 한다. (A.java)
- main 함수는 프로그램 시작점
- 큰 따옴표 안에 있는 글자를 출력
# 데이터 타입
## 문자 타입
1. 포맷 스트링
- C 언어에만 해당하는 사항으로 변수에 저장된 값을 출력할 때는 printf라는 함수를 쓰고, printf 내에서 포맷 스트링을 통해 변수의 출력 방식을 결정한다.
- C언어에서는 2진수를 출력하는 포맷 스트링은 존재하지 않는다.
- 문자형(%c) : 문자 출력
- 문자형(%s) : 문자열 출력
- 정수형(%d) : 10진수 출력
- 정수형(%x) : 16진수 출력
- 정수형(%o) : 8진수 출력
- 실수형(%f) : 실수 출력
2. 문자형 변수 출력
- 문자를 저장할 때 사용하는 타입으로 char라는 키워드를 이용하여 문자형 변수를 선언한다.
- 변수명과 출력 문자와 혼동할 수 있는 예제
1. C언어 코드
#include <stdio.h>
void main() {
char a = 'B';
printf("a\n");
}
// 출력 결과 : a
- 변수 a에 'B'라는 문자를 저장
- a라는 문자를 출력한다.
2. C++ 코드
#include <iostream>
void main() {
char a = 'B';
std:cout << "a" << std::endl;
}
// 출력 결과 : a
- 변수 a에 'B'라는 문자를 저장
- a라는 문자를 출력한다.
3. 자바 코드
public static void main(String[] args) {
char a = 'B';
System.out.println("a");
}
// 출력 결과 : a
- 변수 a에 'B'라는 문자를 저장
- a라는 문자를 출력
4. 파이썬 코드
a = 'B'
print('a')
// 출력 결과 : a
- 변수 a에 'B'라는 문자를 저장
- a라는 문자를 출력
- C언어의 경우는 포맷 스트링을 이용하여 출력하지 않는다면 큰 따옴표 안에 있는 문자를 그대로 출력한다.
- C언어를 제외한 다른 언어들은 큰 따옴표 안에 있는 문자를 그대로 출력한다.
- 변수에 있는 값을 출력하기 위해서 C언어의 경우 큰 따옴표 안에 포맷 스트링을 넣은 후 변수명을 따옴표 없이 적어주어야 하고, 나머지 언어들은 단순히 변수명을 따옴표 없이 적어주어야 한다.
1. C언어 코드
#include <stdio.h>
void main() {
char a = 'B';
printf("%c\n", a);
}
// 출력 결과 : B
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값을 문자(%c) 타입으로 출력한다.
2. C++ 코드
#include <iostream>
void main() {
char a = 'B';
std:cout << a << std::endl;
}
// 출력 결과 : B
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값을 출력한다.
3. 자바 코드
public static void main(String[] args) {
char a = 'B';
System.out.println(a);
}
// 출력 결과 : B
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값을 출력
4. 파이썬 코드
a = 'B'
print(a)
// 출력 결과 : B
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값을 출력
- 단순히 문자만 출력하지 않고 "a: "라는 글자를 포함하여 출력하는 예제
1. C언어 코드
#include <stdio.h>
void main() {
char a = 'B';
printf("a: %c\n", a);
}
// 출력 결과 : a: B
- 변수 a에 'B'라는 문자를 저장
- 포맷 스트링(%c)를 a라는 변수에 저장되어 있는 값을 출력하고 나머지는 따옴표 안의 글자 출력
2. C++ 코드
#include <iostream>
void main() {
char a = 'B';
std:cout << "a: " << a << std::endl;
}
// 출력 결과 : a: B
- 변수 a에 'B'라는 문자를 저장
- "a: "라는 문자열을 출력하고 a라는 변수에 저장된 값을 출력
3. 자바 코드
public static void main(String[] args) {
char a = 'B';
System.out.println("a: " + a);
}
// 출력 결과 : a: B
- 변수 a에 'B'라는 문자를 저장
- "a: "라는 문자열을 출력하고, a라는 변수에 저장된 값을 출력(문자열 뒤에 + 기호는 두 결괏값을 붙일 때 사용)
4. 파이썬 코드
a = 'B'
print("a: ", a)
// 출력 결과 : a: B
- 변수 a에 'B'라는 문자를 저장
- "a: "라는 문자열을 출력하고, a라는 변수에 저장된 값을 출력(콤마는 두 결괏값을 붙일 때 사용함)
- 포맷 스트링에 해당하는 부분만 변수에 저장된 값으로 출력하고, 나머지는 그대로 출력
## 정수 타입
1. 아스키 코드 (ASCII)
- 미국 표준협회에서 제시한 표준 코드 체계로서, 문자에 대응하는 숫자를 표현한 코드 체계이다.
문자 | 10진수 | 16진수 |
NULL('\0') | 0 | 0 |
SPACE(' ') | 32 | 20 |
'0' | 48 | 30 |
'1' | 49 | 31 |
... | ||
'9' | 57 | 39 |
'A' | 65 | 41 |
... | ||
'a' | 97 | 61 |
... | ||
'z' | 122 | 7A |
2. 정수형 변수 출력
- 정수를 저장할 때 사용하는 타입으로서 int라는 키워드를 사용, 정수형 변수를 선언한다.
1. C언어 코드
#include <stdio.h>
void main() {
char a = 5;
printf("a: %d\n", a);
}
// 출력 결과 : a: 5
- 변수 a에 정수값인 5를 저장
- a라는 변수에 저장되어 있는 값을 정수(%d)로 출력한다.
2. C++ 코드
#include <iostream>
void main() {
char a = 5;
std::cout << "a: " << a;
std::cout << std::endl;
}
// 출력 결과 : a: B
- 변수 a에 정수값인 5를 저장
- a라는 변수에 저장되어 있는 값을 출력, 한 줄 개행
3. 자바 코드
public static void main(String[] args) {
char a = 5;
System.out.println("a: " + a);
}
// 출력 결과 : a: 5
- 변수 a에 정수값인 5를 저장
- "a: "라는 문자열을 출력하고 a라는 변수에 저장된 값을 출력한다.
4. 파이썬 코드
a = 5
print("a: ", a)
// 출력 결과 : a: 5
- 변수 a에 정수값인 5를 저장
- "a: "라는 문자열을 출력하고, a라는 변수에 저장된 값을 출력한다.
3. 정수와 문자 관계
- char는 문자를 출력하지만 정수형 포맷 스트링을 사용할 경우 문자에 해당하는 숫자가 출력된다.
1. C언어 코드
#include <stdio.h>
void main() {
char a = 'B';
printf("%d %c\n", a, a);
}
// 출력 결과 : 66 B
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값을 정수(%d), 문자(%c) 타입으로 출력한다.
2. C++ 코드
#include <iostream>
void main() {
char a = 'B';
std::cout << (int)a << " ";
std::cout << a << std::endl;
}
// 출력 결과 : 66 B
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값을 int(정수형)으로 강제 변환하여 출력, a라는 변숫값 출력한다.
3. 자바 코드
public static void main(String[] args) {
char a = 'B';
System.out.println("" +(int)a + " " + a);
}
// 출력 결과 : 66 B
- 변수 a에 'B'라는 문자를 저장
- a라는 변숫값을 int(정수형)으로 강제 변환하여 출력한 값과 a라는 변숫값을 출력한다.
4. 파이썬 코드
a = 'B'
print(ord(a), a)
// 출력 결과 : 66 B
- 변수 a에 'B'라는 문자를 저장
- a라는 변숫값을 ord 함수를 이용 아스키코드 값으로 출력, a라는 변수에 저장된 값을 출력한다.
- 문자형 변수에 값을 더하거나 뺀 후 해당 변수 값을 문자로 출력한 예제
1. C언어 코드
#include <stdio.h>
void main() {
char a = 'B';
printf("%c %c\n", a-1, a+1);
}
// 출력 결과 : A C
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값에 1을 뺀 값과 1을 더한 값을 문자(%c) 타입으로 출력
2. C++ 코드
#include <iostream>
void main() {
char a = 'B';
std::cout << (char)((int)a-1);
std::cout << " ";
std::cout << (char)((int)a+1);
std::cout << std::endl;
}
// 출력 결과 : A C
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값에 1을 뺀 값을 문자로 출력, a라는 변수에 저장되어 있는 값에 1을 더한 값을 문자로 변환하여 출력
3. 자바 코드
public static void main(String[] args) {
char a = 'B';
System.out.println((char)(a-1) + " " + (char)(a+1));
}
// 출력 결과 : A C
- 변수 a에 'B'라는 문자를 저장
- a라는 변수에 저장되어 있는 값에 1을 뺀 값과 1을 더한 값을 문자로 출력
4. 파이썬 코드
a = 'B'
print(chr(ord(a)-1), chr(ord(a)+1))
// 출력 결과 : A C
- 변수 a에 'B'라는 문자를 저장
- a라는 변숫값을 ord 함수를 이용, 아스키코드 값으로 변경한 후 1을 빼고, 1을 더한 값을 chr 함수를 이용해 문자로 출력
- char는 프로그램 관점에서 정수형 문자와 크게 차이가 없다. (char=1바이트의 변수 / int=4바이트 or 8바이트 변수)
4. 진법
- 수를 표기하는 기수법으로서 컴퓨터에서는 2진수 형태로 저장하고 8진수, 10진수, 16진수 형태로 출력이 가능하다.
10진수 | 2진수 | 8진수 | 16진수 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
5. 진법 출력
- C언어에서 %x는 16진수 표기 시 소문자로 출려, %X는 16진수 표기 시 대문자로 출력된다.
- 파이썬의 경우 16진수는 0x, 8진수는 0o가 붙는다.
# 연산자
1. 산술 연산자
- 사칙연산과 관련된 연산 수행
1. C언어 코드
#include <stdio.h>
void main() {
int a = 7, b = 3;
printf("%d\n", a + b);
printf("%d\n", a - b);
printf("%d\n", a * b);
printf("%d\n", a / b);
printf("%d\n", a % b);
}
// 출력 결과 : 10 4 21 2 1
- 변수 a에 7, b에 3이라는 숫자를 저장.
- a와 b를 더하고 그 값 출력
- a에서 b를 빼고 그 값 출력
- a와 b를 곱하고 그 값 출력
- a에서 b를 나눔(정수와 정수를 연산하면 정숫값이라 소수점에 해당하는 값 버림)
- a를 b로 나눴을 때 나머지
2. C++ 코드
#include <iostream>
void main() {
int a = 7, b = 3;
std::cout << a + b << std::endl;
std::cout << a - b << std::endl;
std::cout << a * b << std::endl;
std::cout << a / b << std::endl;
std::cout << a % b << std::endl;
}
// 출력 결과 : 10 4 21 2 1
- 변수 a에 7, b에 3이라는 숫자를 저장.
- a와 b를 더하고 그 값 출력
- a에서 b를 빼고 그 값 출력
- a와 b를 곱하고 그 값 출력
- a에서 b를 나눔(정수와 정수를 연산하면 정숫값이라 소수점에 해당하는 값 버림)
- a를 b로 나눴을 때 나머지
3. 자바 코드
public static void main(String[] args) {
char a = 7, b = 3;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
}
// 출력 결과 : 10 4 21 2 1
- 변수 a에 7, b에 3이라는 숫자를 저장.
- a와 b를 더하고 그 값 출력
- a에서 b를 빼고 그 값 출력
- a와 b를 곱하고 그 값 출력
- a에서 b를 나눔(정수와 정수를 연산하면 정숫값이라 소수점에 해당하는 값 버림)
- a를 b로 나눴을 때 나머지
4. 파이썬 코드
a = 7
b = 3
print(a + b)
print(a - b)
print(a * b)
print(int((int)a / (int)b))
print(a % b)
// 출력 결과 : 10 4 21 2.33333 1
- 변수 a에 7, 변수 b에 3 이라는 숫자를 저장
- a와 b를 더하고 그 값 출력
- a에서 b를 빼고 그 값 출력
- a와 b를 곱하고 그 값 출력
- a에서 b를 나눔(정수와 정수를 연산하면 정숫값이라 소수점에 해당하는 값 버림)
- a를 b로 나눴을 때 나머지
2. 시프트 연산자
- 비트를 이동시키는 연산자
- a라는 변수를 2진수로 나타낼 경우 : 001010
- a를 왼쪽으로 2비트 이동(a << 2)를 하게 되면 2진수로 된 비트들이 왼쪽으로 2칸 이동 : 101000
- 반대로 a를 오른쪽으로 2비트 이동(a>>2)를 하게 되면 2진수로 된 비트들이 오른쪽으로 2칸 이동 : 000010
1. C언어 코드
#include <stdio.h>
void main() {
int a = 10;
printf("%d\n", a<<2);
printf("%d\n", a>>2);
}
// 출력 결과 : 40 2
- 변수 a에 10을 저장.
- a를 왼쪽으로 2비트 이동한 결과를 10진수로 출력
- a를 오른쪽으로 2비트 이동한 결과를 10진수로 출력
2. C++ 코드
#include <iostream>
void main() {
int a = 10;
std::cout << (a<<2) << std::endl;
std::cout << (a>>2) << std::endl;
}
// 출력 결과 : 40 2
- 변수 a에 10을 저장.
- a를 왼쪽으로 2비트 이동한 결과를 10진수로 출력
- a를 오른쪽으로 2비트 이동한 결과를 10진수로 출력
3. 자바 코드
public static void main(String[] args) {
char a = 10;
System.out.println(a<<2);
System.out.println(a>>2);
}
// 출력 결과 : 40 2
- 변수 a에 10을 저장.
- a를 왼쪽으로 2비트 이동한 결과를 10진수로 출력
- a를 오른쪽으로 2비트 이동한 결과를 10진수로 출력
4. 파이썬 코드
a = 10
print(a<<2)
print(a>>2)
// 출력 결과 : 40 2
- 변수 a에 10을 저장.
- a를 왼쪽으로 2비트 이동한 결과를 10진수로 출력
- a를 오른쪽으로 2비트 이동한 결과를 10진수로 출력
3. 관계 연산자
- 두 피연산자 사이의 크기를 비교
- 일반적으로 프로그래밍에서 0이면 False를 의미, 0 이외의 값은 True로 판단한다.
- 결괏값을 출력할 때 True는 1의 값을 갖는다.
1. C언어 코드
#include <stdio.h>
void main() {
int a = 10, b = 5;
printf("%d\n", a > b);
printf("%d\n", a < b);
printf("%d\n", a == b);
printf("%d\n", a != b);
}
// 출력 결과 : 1 0 0 1
- 변수 a에 10, b에 5를 저장.
- a > b는 참이므로 1 출력
- a < b는 거짓이므로 0 출력
- a == b는 거짓이므로 0 출력
- a != b는 참이므로 1 출력
2. C++ 코드
#include <iostream>
void main() {
int a = 10, b = 5;
std::cout << (a>b) << std::endl;
std::cout << (a<b) << std::endl;
std::cout << (a==b) << std::endl;
std::cout << (a!=b) << std::endl;
}
// 출력 결과 : 1 0 0 1
- 변수 a에 10, b에 5를 저장.
- a > b는 참이므로 1 출력
- a < b는 거짓이므로 0 출력
- a == b는 거짓이므로 0 출력
- a != b는 참이므로 1 출력
3. 자바 코드
public static void main(String[] args) {
char a = 10, b = 5;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
// 출력 결과 : true false false true
- 변수 a에 10, b에 5를 저장
- a > b는 참이므로 true 출력
- a < b는 거짓이므로 false 출력
- a == b는 거짓이므로 false 출력
- a != b는 참이므로 true 출력
4. 파이썬 코드
a = 10
b = 5
print(a>b)
print(a<b)
print(a==b)
print(a!=b)
// 출력 결과 : true false false true
- 변수 a에 10, b에 5를 저장
- a > b는 참이므로 true 출력
- a < b는 거짓이므로 false 출력
- a == b는 거짓이므로 false 출력
- a != b는 참이므로 true 출력
4. 논리 연산자
- 두 피연산자 사이의 논리적 관계를 정의
1. C언어 코드
#include <stdio.h>
void main() {
int a = 0, b = 1;
printf("%d\n", a && b);
printf("%d\n", a || b);
}
// 출력 결과 : 0 1
- 변수 a에 0, b에 1을 저장.
- a는 0이기 때문에 False로 인식, b는 0 이외의 값이기 때문에 True로 인식
- a && b는 False와 True의 AND 조건이므로 False인 0을 출력한다.
- a || b는 False와 True의 OR 조건이므로 True인 1을 출력한다.
2. C++ 코드
#include <iostream>
void main() {
boolean a = false, b = true;
std::cout << (a&&b) << std::endl;
std::cout << (a||b) << std::endl;
}
// 출력 결과 : 0 1
- 변수 a에 false, b에 true를 저장
- a && b는 False와 True의 AND 조건이므로 False인 0을 출력한다.
- a || b는 False와 True의 OR 조건이므로 True인 1을 출력한다.
3. 자바 코드
public static void main(String[] args) {
boolean a = false, b = true;
System.out.println(a&&b);
System.out.println(a||b);
}
// 출력 결과 : false true
- 변수 a에 false, b에 true를 저장
- a && b는 False와 True의 AND 조건이므로 false를 출력한다.
- a || b는 False와 True의 OR 조건이므로 true를 출력한다.
4. 파이썬 코드
a = false
b = true
print(a>b)
print(a<b)
print(a==b)
print(a!=b)
// 출력 결과 : False True
- 변수 a에 false, b에 true를 저장
- a && b는 False와 True의 AND 조건이므로 False를 출력한다.
- a || b는 False와 True의 OR 조건이므로 True를 출력한다.
5. 비트 연산자
- 0과 1의 각 자리에 대해 연산을 수행, 0 또는 1의 결괏값을 갖는 연산자
- a는 10이므로 2진수로 나타낼 경우 : 1010
- b는 9이므로 2진수로 나타낼 경우 : 1001
- AND 연산의 경우 같은 자리의 비트가 모두 1인 경우만 결괏값이 1, 그외는 0이다.
- OR 연산의 경우 같은 자리의 비트가 모두 0인 경우만 결괏값이 0, 그외는 1이다.
1. C언어 코드
#include <stdio.h>
void main() {
int a = 10, b = 9;
printf("%d\n", a & b);
printf("%d\n", a | b);
}
// 출력 결과 : 8 11
- 변수 a에 10, b에 9를 저장.
- a & b의 비트 연산(1010 & 1001 = 1000)
- a | b의 비트 연산(1010 | 1001 = 1011)
2. C++ 코드
#include <iostream>
void main() {
int a = 10, b = 9;
std::cout << (a&b) << std::endl;
std::cout << (a|b) << std::endl;
}
// 출력 결과 : 8 11
- 변수 a에 10, b에 9를 저장
- a & b의 비트 연산(1010 & 1001 = 1000)
- a | b의 비트 연산(1010 | 1001 = 1011)
3. 자바 코드
public static void main(String[] args) {
int a = 10, b = 9;
System.out.println(a&b);
System.out.println(a|b);
}
// 출력 결과 : 8 11
- 변수 a에 10, b에 9를 저장
- a & b의 비트 연산(1010 & 1001 = 1000)
- a | b의 비트 연산(1010 | 1001 = 1011)
4. 파이썬 코드
a = 10
b = 9
print(a&b)
print(a|b)
// 출력 결과 : 8 11
- 변수 a에 10, b에 9를 저장
- a & b의 비트 연산(1010 & 1001 = 1000)
- a | b의 비트 연산(1010 | 1001 = 1011)
6. 대입 연산자
- 변수에 값을 대입할 때 사용
- 오른쪽에 있는 값을 왼쪽의 변수에 대입한다.
1. C언어 코드
#include <stdio.h>
void main() {
int a = 10;
a += 4;
printf("%d\n", a);
a /= 2;
printf("%d\n", a);
}
// 출력 결과 : 14 7
- 변수 a에 10을 저장.
- a = a + 4와 동일, 변수에 저장된 숫자에 4가 더해진다.
- a = a / 2와 동일, 변수에 저장된 숫자가 2로 나눠진다.
2. C++ 코드
#include <iostream>
void main() {
int a = 10;
a += 4;
std::cout << a << std::endl;
a /= 2;
std::cout << a << std::endl;
}
// 출력 결과 : 14 7
- 변수 a에 10을 저장.
- a = a + 4와 동일, 변수에 저장된 숫자에 4가 더해진다.
- a = a / 2와 동일, 변수에 저장된 숫자가 2로 나눠진다.
3. 자바 코드
public static void main(String[] args) {
int a = 10;
a += 4;
System.out.println(a);
a /= 2;
System.out.println(a);
}
// 출력 결과 : 14 7
- 변수 a에 10을 저장.
- a = a + 4와 동일, 변수에 저장된 숫자에 4가 더해진다.
- a = a / 2와 동일, 변수에 저장된 숫자가 2로 나눠진다.
4. 파이썬 코드
a = 10
a += 4
print(a)
a /= 2
print(a)
// 출력 결과 : 14 7.0
- 변수 a에 10을 저장.
- a = a + 4와 동일, 변수에 저장된 숫자에 4가 더해진다.
- a = a / 2와 동일, 변수에 저장된 숫자가 2로 나눠진다.
- 파이썬의 경우 나누기를 하면 결과가 실수로 나온다.
7. 증감 연산자
- 피연산자를 1씩 증가 or 감소시킬 때 사용
- 파이썬은 증감 연산자가 존재하지 않는다.
1. C언어 코드
#include <stdio.h>
void main() {
int a = 10;
a++;
printf("%d\n", a);
a--;
printf("%d\n", a);
}
// 출력 결과 : 11 10
- 변수 a에 10을 저장.
- a++ 로 인해 a의 값이 1증가
- a-- 로 인해 a의 값이 1감소
2. C++ 코드
#include <iostream>
void main() {
int a = 10;
a++;
std::cout << a << std::endl;
a--;
std::cout << a << std::endl;
}
// 출력 결과 : 11 10
- 변수 a에 10을 저장.
- a++ 로 인해 a의 값이 1증가
- a-- 로 인해 a의 값이 1감소
3. 자바 코드
public static void main(String[] args) {
int a = 10;
a++;
System.out.println(a);
a--;
System.out.println(a);
}
// 출력 결과 : 11 10
- 변수 a에 10을 저장.
- a++ 로 인해 a의 값이 1증가
- a-- 로 인해 a의 값이 1감소
4. 파이썬 코드 ( 증감 연산자 존재 x )
# 조건문
- 조건의 참, 거짓 여부에 따라 실행 경로가 달라지는 if문과 여러 경로 중 하나를 선택하는 switch문으로 구분
1. if문
- 조건이 참, 거짓인지에 따라 경로를 선택하는 명령문
- if ~ else if ~ else 의 형태이다.
1. C언어 코드
#include <stdio.h>
void main() {
int a = 10;
if ( a % 2 == 0 ) {
printf("짝수\n");
} else {
printf("홀수\n");
}
}
// 출력 결과 : 짝수
- 변수 a에 10을 저장.
- a를 2로 나눴을 때 나머지가 0인 경우 짝수
- if 조건에 해당하지 않으면 홀수를 출력
2. C++ 코드
#include <iostream>
void main() {
int a = 10;
if ( a % 2 == 0 ) {
std::cout << "짝수" << std::endl;
} else {
std::cout << "홀수" << std::endl;
}
}
// 출력 결과 : 짝수
- 변수 a에 10을 저장.
- a를 2로 나눴을 때 나머지가 0인 경우 짝수
- if 조건에 해당하지 않으면 홀수를 출력
3. 자바 코드
public static void main(String[] args) {
int a = 10;
if ( a % 2 == 0 ) {
System.out.println("짝수");
} else {
System.out.println("홀수");
}
}
// 출력 결과 : 짝수
- 변수 a에 10을 저장.
- a를 2로 나눴을 때 나머지가 0인 경우 짝수
- if 조건에 해당하지 않으면 홀수를 출력
4. 파이썬 코드
a = 10
if a % 2 == 0
print('짝수')
else
print('홀수')
// 출력 결과 : 짝수
- 변수 a에 10을 저장.
- a를 2로 나눴을 때 나머지가 0인 경우 짝수
- if 조건에 해당하지 않으면 홀수를 출력
2. switch~case문
- 조건에 따라 여러 개의 선택 경로 중 하나를 취하고자 할 때 사용하는 명령어
- 파이썬은 swich~case문이 존재하지 않는다.
1. C언어 코드
#include <stdio.h>
void main() {
int a = 10;
switch(a % 2) {
case 0:
printf("짝수\n");
break;
case 1:
printf("홀수\n");
}
}
// 출력 결과 : 짝수
- 변수 a에 10을 저장.
- a % 2의 결과 값에 따라 해당 case로 이동
- a % 2 == 0일 경우 해당 case에 있는 명령문 실행(짝수)
- a % 2 == 1일 경우 해당 case 있는 명령문 실행(홀수)
- break를 만나지 않으면 계속 읽는다.
2. C++ 코드
#include <iostream>
void main() {
int a = 10;
switch(a % 2) {
case 0:
std::cout << "짝수" << std::endl;
break;
case 1:
std::cout << "홀수" << std::endl;
}
}
// 출력 결과 : 짝수
- 변수 a에 10을 저장.
- a % 2의 결과 값에 따라 해당 case로 이동
- a % 2 == 0일 경우 해당 case에 있는 명령문 실행(짝수)
- a % 2 == 1일 경우 해당 case 있는 명령문 실행(홀수)
- break를 만나지 않으면 계속 읽는다.
3. 자바 코드
public static void main(String[] args) {
int a = 10;
switch(a % 2) {
case 0:
System.out.println("짝수");
break;
case 1:
System.out.println("홀수");
}
}
// 출력 결과 : 짝수
- 변수 a에 10을 저장.
- a % 2의 결과 값에 따라 해당 case로 이동
- a % 2 == 0일 경우 해당 case에 있는 명령문 실행(짝수)
- a % 2 == 1일 경우 해당 case 있는 명령문 실행(홀수)
- break를 만나지 않으면 계속 읽는다.
4. 파이썬 코드 ( switch~case문 존재 x )
# 반복문
- 특정 부분을 조건이 만족할 때까지 실행하도록 하는 명령문
1. for문
- 초기값, 최종값, 증감 값을 지정하여 반복 실행하는 명령문
1. C언어 코드
#include <stdio.h>
void main() {
int i;
int a = 4;
for( i = 1; i <= 9; i++ ) {
printf("%d * %d = %d\n", a, i, a*i);
}
}
// 출력 결과 : 4 * 1 = 4, 4 * 2 = 8, ... , 4 * 9 = 36
- for문에서 사용할 변수 선언(i)
- a 변수에 값 추가(4)
- i는 1 ~ 9 까지 1씩 증가
- for문이 돌 때마다 i 값이 변경된다.
2. C++ 코드
#include <iostream>
using nammespace std;
void main() {
int i;
int a = 4;
for ( i = 1; i <= 9; i++ ) {
cout << a << "*" << i << "=";
cout << a * i << endl;
}
}
// 출력 결과 : 4 * 1 = 4, 4 * 2 = 8, ... , 4 * 9 = 36
- for문에서 사용할 변수 선언(i)
- a 변수에 값 추가(4)
- i는 1 ~ 9 까지 1씩 증가
- for문이 돌 때마다 i 값이 변경된다.
3. 자바 코드
public static void main(String[] args) {
int i;
int a = 4;
for ( i = 1; i <= 9; i++ ) {
System.out.println(a + "*" + i + "=" + (a*i));
}
}
// 출력 결과 : 4 * 1 = 4, 4 * 2 = 8, ... , 4 * 9 = 36
- for문에서 사용할 변수 선언(i)
- a 변수에 값 추가(4)
- i는 1 ~ 9 까지 1씩 증가
- for문이 돌 때마다 i 값이 변경된다.
4. 파이썬 코드
a = 4
for i in range(1, 10):
print(a, '*', i, '=', a * i)
// 출력 결과 : 4 * 1 = 4, 4 * 2 = 8, ... , 4 * 9 = 36
- for문에서 사용할 변수 선언(i)
- a 변수에 값 추가(4)
- i는 1 ~ 9 까지 1씩 증가
- for문이 돌 때마다 i 값이 변경된다.
2. while문
- 시작, 종료 조건을 지정하여 참인 동안 해당 문장을 반복 실행하는 명령문
1. C언어 코드
#include <stdio.h>
void main() {
int i;
int a = 4;
while( i <= 9 ) {
printf("%d * %d = %d\n", a, i, a*i);
i++;
}
}
// 출력 결과 : 4 * 1 = 4, 4 * 2 = 8, ... , 4 * 9 = 36
- 구구단에 사용할 변수 선언(i)
- a 변수에 값 추가(4)
- i <= 9를 만족할 때까지 실행
- 구구단 출력 부분
- i 값을 1 증가시킴
2. C++ 코드
#include <iostream>
void main() {
int i;
int a = 4;
while ( i <= 9 ) {
cout << a << "*" << i << "=";
cout << a * i << endl;
i++;
}
}
// 출력 결과 : 4 * 1 = 4, 4 * 2 = 8, ... , 4 * 9 = 36
- 구구단에 사용할 변수 선언(i)
- a 변수에 값 추가(4)
- i <= 9를 만족할 때까지 실행
- 구구단 출력 부분
- i 값을 1 증가시킴
3. 자바 코드
public static void main(String[] args) {
int i;
int a = 4;
while ( i <= 9; ) {
System.out.println(a + "*" + i + "=" + (a*i));
i++;
}
}
// 출력 결과 : 4 * 1 = 4, 4 * 2 = 8, ... , 4 * 9 = 36
- 구구단에 사용할 변수 선언(i)
- a 변수에 값 추가(4)
- i <= 9를 만족할 때까지 실행
- 구구단 출력 부분
- i 값을 1 증가시킴
4. 파이썬 코드
a = 4
while i <= 9:
print(a, '*', i, '=', a * i)
i = i + 1
// 출력 결과 : 4 * 1 = 4, 4 * 2 = 8, ... , 4 * 9 = 36
- 구구단에 사용할 변수 선언(i)
- a 변수에 값 추가(4)
- i <= 9를 만족할 때까지 실행
- 구구단 출력 부분
- i 값을 1 증가시킴
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
릴리즈 노트, 제품소프트웨어 패키징 도구, 저작권 보호 기술, 패키저 (0) | 2020.07.11 |
---|---|
제품 소프트웨어 패키징, 모듈, 모듈화, 빌드 (0) | 2020.07.10 |
X.25 (0) | 2020.07.09 |
TCP / IP (0) | 2020.07.09 |
소프트웨어 테스트, 살충제 패러독스, 오류-부재의 궤변 (0) | 2020.07.08 |