그림으로 배우는 자바(1)

그림으로 배우는 자바 chapter 4까지

자료구조 수업 시간에, 갑자기 시험 비슷한 실습을 봤고. 수도코드를 자바로 프로그래밍을 했다.

2년 전, 자바 프로그래밍을 들은 뒤 자바는 처음이므로 제대로 짤 수가 없었다.

천리길도 한 걸음부터.

2년 전에 공부했던 『그림으로 배우는 자바프로그래밍』을 다시 빌렸다. 그리고 『Do it! 자료구조와 함께 배우는 알고리즘 입문』 을 빌려왔다.

4학년이 되어서야 자료구조를 듣게 되었지만, 시기 상관없이 기회로 삼아 열심히 해보자.

직접 컴파일하기.

  1. 소스 파일 저장 (ex : 파일 제목 Sample.java)
  2. 컴파일러를 실행시켜 컴파일하기 javac Sample.java
  3. 인터프리터 동작시켜 프로그램을 실행 java Sample1

※이클립스 단축키 fn +command + shift + f11을 누르면 실행이된다.

java의 기본

출력 방법 이해하기

System.out.println이라는 문자열에 주목. System.out은 표준 출력(standard output)이라고 불리는 컴퓨터 장치와 연결된 단어이다.

‘표준 출력’ 이란 ‘지금 사용하고 있는 컴퓨터 화면 장치’를 뜻한다.

println 은 그 화면에 문자열을 프린트(표시)하라는 의미이다. 따라서 System.out.println은 시스템에게 문자열을 ‘화면’에 출력하라고 지시하는 것이다.

※ print는 문자열이 이어져서 출력된다.

클래스에 대한 설명은 -> 8장에서.

짚고 넘어갈 건, Java 코드는 하나 이상의 클래스로 구성된다.

문자와 숫자

**리터럴이란 ? ** `일정한 '값'을 나타내는 데 이용되는 Java의 단어 같은 것들’ ex) 문자 리터럴, 문자열 리터럴, 숫자(정수・부동 소수 리터럴)

**Q) 토큰이란 ? ** ‘단어’, 즉 ‘특정 의미를 가진 문자(또는 조합)’를 Java에서는 토큰(token)이라고 부른다. 토큰은 그 기능에 따라 다음과 같은 종류로 분류할 수 있다.

  • 리터럴
  • 키워드
  • 식별자
  • 연산자
  • 구분자(쉼표 등)

Q) 문자 리터럴 ? -> (하나의) 문자, 문자열(스트링) . 이 두 종류의 리터럴을 구분하여 다룬다.

Q) 이스케이프시퀀스란? 특수 문자를 표현할 때에는 그 문자 앞에 \를 붙여서 ‘하나의 문자’로 만든다. 이를 이스케이프 시퀀스 라고 한다.

Q) 숫자 리터럴

  • 8진수 …… 숫자 앞에 0을 붙인다.
  • 16진수 …… 숫자 앞에 0x를 붙인다.

변수

변수의 ‘이름’이 되는 식별자.

변수를 처리하려면

  1. 변수에 ‘이름(name)’을 붙인다.
  2. 변수의 ‘형(type)’을 지정한다.

변수의 이름으로 사용할 수 없는 예시

  • 12a <——- 숫자로 시작할 수 없다.
  • return <——- java에서 예약한 키워드는 사용할 수 없다.
  • is-a <—— 특수문자는 사용할 수 없다.

Java의 기본형

  • boolean
  • char: 2바이트 문자(\u0000~\uffff)
  • byte: 1바이트 정수 (-128~127)
  • short 2바이트 정수 (-32768~32767)
  • int 4바이트 정수
  • long 8바이트 정수
  • float 4바이트 단정도 부동 소수
  • double 9 바이트 단정도 부동 소수

변수 초기화

변수를 선언했을 때, 동시에 변수에 값을 저장하기가 가능하며. 이러한 처리를 변수를 초기화시킨다고 한다.

키보드 입력

import java.io. *;
public class Main {
     public static void main(String[] args) throws IOException{
         BufferedReader br =
                 new BufferedReader(new InputStreamReader(System.in));
         
         String str = br.readLine();
         //문자열을 변환하여 int 형의 변수에 저장        
        //int num = Interger.parseInt(str); 
         System.out.println(str + "(이) 입력되었습니다."); 
         
     }
}

여기서 등장한 ‘System.in’라는 문장은 표준 입력이라는 장치와 연결되어 있다.

표준 입력이란 일반적으로 컴퓨터의 ‘키보드’를 의미한다.

연산자.

c랑 거의 비슷하다. 문자열 연결 연산자는 ‘+’ 증가, 감소 연산자는 ‘++’,’–’ 후위 증가 연산자, ‘a++’, 대입 후에 증가연산자 사용 전위 증가 연산자, ‘++a’, 대입 전에 증가연산자 사용

복합연산자

ex) a+=b; a+b의 값을 a에 대입한다.

연산자 우선순위

형 변환

큰 사이즈의 형 변환

작은 데이터 형 변수를 큰 데이터형 변수에 대입가능

작은 사이즈의 형 변환

-> 명시적으로 형을 변화시키기. ex)int inum = (int)dnum;

다른 형끼리 연산하기

두 연산자의 크기를 비교하여 그 중에서 큰 데이터형으로 형 변환시킨 후, 연산을 수행

같은 형끼리 연산하기

ex)
int num1= 5;
int num2 = 4;
double div = num1 / num2;
System.out.println("5/4는"  + div + "입니다.";

이걸 실행하면 5/4는 1.0입니다. 1.25라는 값을 얻기 위해서는 double div = (double) num1/(double)num2; 이렇게 해야한다. double 형으로 된 결과값을 얻으려면 두 개의 피연산자 중에서 적어도 1개의 피연산자를 캐스팅 연산자로 형 변환 해야한다.

연습문제 4번 풀이

import java.io. *;
public class Main {
 	public static void main(String[] args) throws IOException{
 		BufferedReader br =
 				new BufferedReader(new InputStreamReader(System.in));
 		
 		System.out.println("삼각형의 밑변과 높이를 입력하십시오.");
 		String bottom = br.readLine();
 		String height = br.readLine();
 		
 		int bottom2 = Integer.parseInt(bottom);
 		int height2 = Integer.parseInt(height);
 		
 		double area = (bottom2 * height2)/(double)2 ;
 		System.out.println("삼각형의 넓이는"+ area + "입니다.");
 		 
 	}
}

참고자료

그림으로 배우는 자바, 영진닷컴

0%