파이썬 개발자를 위한 C언어 & Java 기본 문법 가이드

정처기 실기를 위한 C & Java 요약 렛츠고. (이러고 시험 보러 안감ㅋ)

프로그램 구조 차이

구분 Python C Java
실행 시작점 위에서부터 실행(순차적) main() 함수에서 시작 public static void main() 메서드에서 시작
파일 확장자 .py .c .java
컴파일 필요 여부 X 컴파일 필요 (gcc 등) 컴파일 + JVM 실행
출력 print("Hello") printf("Hello"); System.out.println("Hello");

기본 문법 비교

항목 Python C Java
주석 # 주석 // 한 줄, /* 여러 줄 */ C와 동일하게 //, /* */
변수 선언 x = 10 (자동 타입) int x = 10; int x = 10;
세미콜론 X 문장 끝마다 ; 문장 끝마다 ;
블록(들여쓰기) 들여쓰기 {} 중괄호 {} 중괄호
타입 필수 여부 자동 필수 필수

기본 자료형

자료형 Python C Java
정수 int int, short, long int, short, long
실수 float float, double float, double
문자 str, 'a' char c = 'a'; char c = 'a';
문자열 '문자열' char str[] = "문자열"; String s = "문자열";
불리언 True/False 없음 (0=false, 그 외 true) boolean x = true;

입력/출력 비교

동작 Python C Java
입력 x = input() scanf("%d", &x); Scanner sc = new Scanner(System.in); int x = sc.nextInt();
출력 print(x) printf("%d", x); System.out.println(x);

제어문 (조건문 / 반복문)

if문

  1. 파이썬
     # Python
     if x > 0:
         print("양수")
     else:
         print("음수")
    
  2. C
     // C
     if (x > 0) {
         printf("양수");
     } else {
         printf("음수");
     }
    
  3. Java
     // Java
     if (x > 0) {
         System.out.println("양수");
     } else {
         System.out.println("음수");
     }
    

for문

  1. python
     for i in range(5):
         print(i)
    
  2. C
     // C
     for (int i = 0; i < 5; i++) {
         printf("%d\n", i);
     }
    
  3. Java
     // Java
     for (int i = 0; i < 5; i++) {
         System.out.println(i);
     }
    

while문

  1. python
     i = 0
     while i < 5:
         print(i)
         i += 1
    
  2. C
     int i = 0;
     while (i < 5) {
         printf("%d\n", i);
         i++;
     }
    
  3. Java
     int i = 0;
     while (i < 5) {
         System.out.println(i);
         i++;
     }
    

함수 / 메서드

  1. python
     def add(a, b):
         return a + b
    
  2. C
     int add(int a, int b) {
         return a + b;
     }
    
  3. Java
     // Java (클래스 안에 있어야 함)
     public static int add(int a, int b) {
         return a + b;
     }
    

배열 (리스트)

  1. python
     nums = [1, 2, 3]
     print(nums[0])
    
  2. C
     int nums[3] = {1, 2, 3};
     printf("%d", nums[0]);
    
  3. Java
     int[] nums = {1, 2, 3};
     System.out.println(nums[0]);
    

클래스 (파이썬 vs 자바)

  1. python
     class Person:
         def __init__(self, name):
             self.name = name
            
         def greet(self):
             print("Hi, I'm", self.name)
    
     p = Person("Jiyeon")
     p.greet()
    
  2. Java
     class Person {
         String name;
    
         Person(String name) {
             this.name = name;
         }
    
         void greet() {
             System.out.println("Hi, I'm " + name);
         }
     }
    
     public class Main {
         public static void main(String[] args) {
             Person p = new Person("Jiyeon");
             p.greet();
         }
     }
    

기타 문법 비교

기능 C Java Python    
문자열 길이 strlen(str) str.length() len(str)    
문자열 연결 없음 (수동 처리) + +    
증감연산자 a++, ++a 동일 a += 1 사용    
타입변환 (int)x (int)x int(x)