프로그램은 정해진 길로만 동작하지 않습니다! 사용자 입력이나, 프로그램의 상태에 따라 여러 가지 "분기"를 취해줄 수 있는 능력을 가지고 있어야 합니다. 이번 시간에는 프로그래밍 언어에서 이런 "분기"를 설정해 줄 수 있는 제어문, 그중에서도 조건문을 알아보겠습니다!


IF문

프로그래밍의 가장 기본적인 흐름 제어문인 if에 대해서 알아보도록 하겠습니다. 우선 문법적인 구조는 다음과 같습니다.

조건에는 boolean값 그자체혹은 boolean을 반환하는 식이 들어가야 합니다. 물건을 구매하는 프로그램 코드로 자세한 사용법을 알아보겠습니다.

// IfExample.java

public class IfExample{
	public static void main(String[] args){
		int coin = 10000;
		int price = 7000;

		if(coin >= price){
			coin -= price;
			System.out.println("Buy Success, balance : "+coin);
		}else{
			System.out.println("You can't buy, make money bitch");
		}
		
	}
	
}
// 출력
Buy Success, balance : 3000

조건 coin >= price가 성립되어 coin에서 7000원이 빠지고, Buy Success, balance : 3000이 출력된 것을 볼 수 있습니다!

else if를 활용하면 아래와 같이 여러 분기를 만들 수도 있습니다!

// IfElseExample.java

public class IfElseExample{
	public static void main(String[] args){
		char grade = 'B';
		
		if(grade == 'A'){
			System.out.println("WOW YOUR A");
		}else if(grade == 'B'){
			System.out.println("OH... YOUR B");
		}else if(grade == 'C'){
			System.out.println("umm.. YOUR C");
		}else{
			System.out.println("Take your test first");
		}
	}
	
}
// 출력
OH... YOUR B

그런데 이런 분기가 많이 정말 많이 늘어나면 코드를 쓰기 지저분 해지 않을까요? 그에 대한 해답을 SWITCH문이 제공합니다.


SWTICH문

SWITCH는 "다중 분기"로 불립니다. 문법적 형태는 다음과 같습니다.

case와 값뒤에 있는 특수기호가 문장 끝의 세미콜론(;)이 아닌, 콜론(:) 임을 유의해 주세요. switch문은 case에 break를 추가하지 않으면, 아래 있는 모든 case를 실행시키니, 특별한 이유가 없는 이상 break는 case뒤에 붙여주세요!

* if 문의 else와 비슷한 default에 break가 안 붙는 이유는 어차피 마지막 문이기 때문입니다. 통일성을 위해서 break를 붙이는 프로그래머도 있습니다.

 

코드로 사용방법을 알아보겠습니다! 아래 코드는 if문에서 보았던 성적 분기를 switch로 처리한 코드입니다.

// SwitchExample.java

public class SwitchExample{
	public static void main(String[] args){
		char grade = 'B';

		switch(grade){
			case 'A' :
				System.out.println("WOW YOUR A");
				break;
			case 'B' :
				System.out.println("OH... YOUR B");
				break;
			case 'C' :
				System.out.println("umm.. YOUR C");
				break;
			default :
				System.out.println("Take your test first");
		}
		
	}
	
}
// 출력
OH... YOUR B

이번 시간에는 프로그래밍에서 절대! 빠질 수 없는 중요한 내용인 흐름 제어문을 배웠습니다. 그중에서도 if와 switch를 배웠고요, 익숙해질 때까지 여러 번 자신만의 프로그램을 만들어보며 실습해보기를 바랍니다! 다음 시간에는 프로그래밍을 프로 그래밍답게 만들어주는 강력한 도구인 반복문을 배우도록 하겠습니다!

'JAVA' 카테고리의 다른 글

[JAVA와 친해지기] 배열  (0) 2021.08.24
[JAVA와 친해지기] 반복문  (0) 2021.08.21
[JAVA와 친해지기] 연산자  (4) 2021.08.18
[JAVA와 친해지기] 자료형  (0) 2021.08.17
JAVA 예약어 종류  (0) 2021.08.14

우리의 초등학교 풋풋했던 어린 시절로 돌아가서 더하기 빼기를 배우던 시절이 기억나시나요? 그 사소해 보였던 덧셈 뺄셈이 나중에 어려워 보이는 미적분으로 발전하 듯 수리학과 밀접한 관련이 있는 프로그래밍의 분야에서도 기본적인 사칙연산은 프로그램의 기초가 됩니다. 이번 시간에는 우리가 배우는 JAVA환경에서의 연산을 알아보도록 하겠습니다!

 


사칙연산

JAVA의 사칙연산을 코드와 함께 만나볼께요!

// Algebra.java

public class Algebra{
	public static void main(String[] args){
		int x = 10;
		int y = 3;

		System.out.println("x+y="+(x+y));	//덧셈
		System.out.println("x-y="+(x-y));	//뺄셈
		System.out.println("x*y="+(x*y));	//곱셈
		System.out.println("x/y="+(x/y));	//나눗셈
		System.out.println("x%y="+(x%y));	//mod연산
	}
}
//출력

x+y=13
x-y=7
x*y=30
x/y=3
x%y=1

위의 5가지 연산이 JAVA의 기본적인 사칙연산입니다! 다음은 증감 연산자로 불리는 연산을 알아볼까요?

// Algebra2.java

public class Algebra2{
	public static void main(String[] args){
		int x = 10;

		System.out.println("x++ : "+(x++));	//이줄까지는 x : 10, 이 줄 실행 후 x : 11
		System.out.println("x-- : "+(x--));	//이줄까지는 x : 11, 이 줄 실행 후 x : 10
		System.out.println("++x : "+(++x));	// 이줄까지는 x : 11, 이 줄 실행 후 x : 11
		System.out.println("--x : "+(--x));	// 이줄까지는 x : 10, 이 줄 실행 후 x : 10
	}
}
//출력
x++ : 10
x-- : 11
++x : 11
--x : 10

증감 연산자는 변수한 개에 대해서 동작하는 연산자로 오직 1 증가인 ++와 1 감소인 --만이 존재합니다. 특이한 점은 연산의 결과가 실제 변수에 반영된다는 점이고, 연산자의 위치에 따라 증감 후 코드 줄 실행 or 코드줄 실행 후 증감으로 나뉩니다. 사칙 연산자의 변용으로 아래와 같은 사용도 가능합니다!

// Algebra3.java

public class Algebra3{
	public static void main(String[] args){
		int x = 10;
		int y = 3;

		x += y;	//x에 x+y를 대입, 이제 x는 13
		System.out.println("x+=y"+x);	
		x -= y;	//x에 x-y를 대입, 이제 x는 10
		System.out.println("x-=y"+x);
		x *= y;	//x에 x*y를 대입, 이제 x는 30
		System.out.println("x*=y"+x);
		x /= y;	//x에 x/y를 대입, 이제 x는 10
		System.out.println("x/=y"+x);
		x %= y;	//x에 x%y를 대입, 이제 x는 1
		System.out.println("x%=y"+x);
	}
}
//출력
x+=y13
x-=y10
x*=y30
x/=y10
x%=y1

다음은 논리 연산자에 대해서 알아보겠습니다!


논리 / 비교 연산

논리 연산이란 TRUE(1)와 FALSE(0)로 이루어진 2진수 세상에서 조건(논리)을 만들기 위한 연산으로 NOT(!) / AND(&&) / OR(||) 등이 있습니다! 비교 연산은 좌변과 우변의 크기 / 일치 여부를 비교하는 연산자로 초과 or 미만(> or <) / 이상, 이하(>= or <=) / 일치(==) / 불일치(!=)의 연산자가 있습니다!

// Logical.java

public class Logical{
	public static void main(String[] args){
		boolean x = true;
		boolean y = false;
        int a = 3;
        int b = 5;
		
		System.out.println("!True = "+!x);		// NOT 연산
		System.out.println("True && False = "+x&&y);	// AND 연산
		System.out.println("True || False = "+x||y);	// OR 연산
		System.out.println("3 < 5 = "+a<b);		// 초과 연산
		System.out.println("3 >= 5 = "+a>=b);		// 이상 연산
		System.out.println("True == False = "+x==y);	// 일치 연산
		System.out.println("True != False = "+x!=y);	// 불일치 연산
	}
}
//출력
!True = false
True && False = false
True || False = true
3 < 5 = true
3 >= 5 false
True == False = false
True != False = true

일치와 불일치 연산은 boolean값이 아니라 3==3과 같은 비논리형 타입의 비교도 가능합니다!

추가로 AND와 OR의 연산 결과는 다음과 같습니다!

x y AND연산
false false false
false true false
true false false
true true true
x y OR연산
false false false
false true true
true false true
true true true

비트 연산자

JAVA는 당연하게도 2진수 연산을 지원합니다!

// Bit.java

public class Bit{
	public static void main(String[] args){
		int a = 0b01001110;
		int b = 0b10101111;;
		
		System.out.println("a&b = "+(a&b));	// and 연산
		System.out.println("a|b = "+(a|b));	// or 연산
		System.out.println("a^b = "+(a^b));	// xor 연산
		System.out.println("a << 2 = "+(a<<2));	// shift 연산
	}
}

시프팅을 제외하고는 논리 연산자를 한문자로 기술하면 동일하게 비트 수준으로 동작합니다 얘네들도 줄여서 대입 연산으로(ex : ^= |= &= 등등) 동작시킬 수 있습니다!


삼항 연산자

조금 특이한 연산자가 있습니다!  연산자는 피연산자(예를 들면 a+b 일 때 연산자 + 에 필요한 피연산자는 a와 b 2개) 개수에 따라 분류 가능합니다. 단항(1개) / 이항(2개) 연산자가 보통 사용되는데, 삼항(3개)이 필요한 연산자가 java에는 있습니다! 바로?: 연산자입니다! 사용을 바로 보겠습니다!

// Tri.java

public class Tri{
	public static void main(String[] args){
		int a = 3;
		int result = a>5 ? 5 : a;	// a가 5보다 크다면 :왼쪽의 5, 혹은 a
		
		System.out.println("result = "+result);
	}
}
// 출력
result = 3

그렇습니다!

(조건)? (조건이 참 일 때) : (조건이 거짓 일 때)

처럼 3개의 피연산자를 받습니다!


이번 시간에는 JAVA에서 사용되는 연산자를 알아보았습니다! 다음 시간에는 프로그래밍의 꽃! 우리 마음대로 프로그램의 방향을 안내해 줄 수 있는 제어문에 대해서 알아보도록 하겠습니다!

'JAVA' 카테고리의 다른 글

[JAVA와 친해지기] 반복문  (0) 2021.08.21
[JAVA와 친해지기] 흐름제어문  (0) 2021.08.19
[JAVA와 친해지기] 자료형  (0) 2021.08.17
JAVA 예약어 종류  (0) 2021.08.14
[JAVA와 친해지기] JAVA프로그래밍과 변수  (2) 2021.08.14

다들 기억하시나요?? 지난 시간에 우리는 변수가 무엇인지 배웠습니다! 프로그래밍을 하면서 사용하는 변수는 그 변수에 해당하는 "자료형" 이 필요합니다. 자료형이 어떤 것인지 사전적 의미부터 확인하고 가겠습니다!

자료형(資料形) 또는 데이터 타입(영어: data type)은 컴퓨터 과학과 프로그래밍 언어에서 실수치, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류로서, 더 나아가 해당 자료형에 대한 가능한 값, 해당 자료형에서 수행을 마칠 수 있는 명령들, 데이터의 의미, 해당 자료형의 값을 저장하는 방식을 결정한다.

< 자료형 : 출처 위키백과 https://ko.wikipedia.org/wiki/%EC%9E%90%EB%A3%8C%ED%98%95 >

"자료형"은 컴퓨터 과학과 프로그래밍 언어에서 실수치, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류라고 합니다. 조금 쉽게 그림으로 보면 다음과 같이 분류할 수 있겠습니다!

 

변수는 자신이 어떤 type인지 지정하는 "그릇"인 "자료형"을 지정해야 사용할 수 있습니다! 잠깐 저번시간의 코드를 보겠습니다.

// VarConst.java

public class VarConst{

	public static void main(String[] args){
		int x = 1;			// x는 정수 1, 처음 선언 시 정수자료형(int)를 명시
		int y = 3;			// x는 정수 3, 처음 선언 시 정수자료형(int)를 명시
		String name = "REDUCTO";	// name은 문자열, 처음 선언 시 문자열자료형(String)을 명시
        
       	 	//x="abc" 			// ERROR! x는 정수형이기 때문에 문자열 저장불가

		System.out.println(x);
		x = y;
		System.out.println(y);
		System.out.println(x);
		System.out.println(name);
	}

}

이 프로그램에서 사용하는 변수는 x / y // name입니다. 각각은 정수형 / 정수형 / 문자열형 자료형으로 선언(변수를 어떻게 코드에서 사용하겠다고 코드에 명시하는 것을 선언이라고 합니다.)되었습니다. 따라서 이 코드에서 다시 문자열로 선언하지 않는 이상 x="abc"같이 정수가 아닌 값을 대입(변수에 값을 변경하는것을 대입이라고 합니다.)하는것은 오류입니다.

 

그러면 JAVA의 자료형은 어떤 것들이 있을까요? JAVA자료형 분류는 아래의 그림과 같습니다!

기본형(Primitive Type)의 자료형은 논리 / 정수 / 실수 / 문자(1글자)를 나타내는 자료형입니다. 기본형의 특징은 다음과 같은 것들이 있습니다.

  • 소문자로 시작(boolean / int / char / float / double / long)
  • OS에 따라 자료형의 길이(표현범위)가 다르지 않음
  • null값을 가질 수 없음

기본형 자료의 세부적인 정보는 다음과 같습니다!

자료형 크기 표현범위 사용
byte 8bits -2^7 ~ 2^7-1 정수
short 16bits -2^15 ~ 2^15-1 정수
int 32bits -2^31 ~ 2^31-1 정수
long 64bits -2^63 ~ 2^63-1 정수
float 32bits -3.4*10^38 ~ 3.4*10^38 실수
double 64bits -1.7*10*308 ~ 1.7*10^308 실수
char 16bits 0 ~ 2^16-1 문자
boolean 1bit true / false 논리

참조형(Reference Type)은 기본형을 제외한 자료형입니다. 우리가 코드에서 사용한 String 등 기본형이 아닌 자료형을 모두 참 조형이라고 부릅니다.(char는 한 글자만을 저장하기에 "name"이라는 [문자열]을 저장하기 위해 String을 사용했습니다.) JAVA를 JAVA 답게 만드는 개념이며 지금 당장은 이해가 어렵더라도 아래와 같은 특징이 있습니다.

  • 대문자로 시작(String / Hashmap등)
  • java.lang.Object를 상속받아 생성된 자료형
  • null을 가질 수 있음

 

이번 시간에는 자료형에 대해서 알아보겠습니다! 모르는 단어가 나와 막막하게 느껴져도 오히려 배울게 많아졌다는 기대감으로 같이 끝까지 읽어주시면 좋겠습니다! 다음 시간에는 연산에 대해서 알아보도록 하겠습니다!

 

_(언더스코어) : JAVA 9부터 예약어가 되었습니다.(이제 단독으로 언더스코어만쓰는 변수명은 불가하네영)

 

abstract : 추상클래스를 지정하는 데 사용됩니다.

 

assert : 강한 에러검출을 위한 키워드

 

boolean : 논리값 자료형

 

break : 루프탈출 제어문

 

byte : 바이트 자료형

 

case : 다중분기 내부에 사용되는 정합여부확인 제어문

 

catch : 에러발생 시 사용되는 에러핸들블럭 시작문(try 와 같이 쓰임)

 

char : 단일 문자열 자료형

 

class : 객체 생성을 위한 예약어

 

const : 고정값 지정 예약어

 

continue : 다음 루프로 강제이동 제어문

 

default : 다중분기 내부 끝에서 사용되는 제어문

 

 do : do-while loop시 시작문을 의미하는 예약어

 

double : 소수표현 예약어

 

else : if와 같이 쓰이는 제어문 예약어

 

enum : 열거형 타입을 선언하기 위한 예약어

 

extends : 상속을 위한 예약어

 

final : 상속불가 클래스 지정 or 변경불가 상수 지정 예약어

 

finally : try~ catch 후 클리너 코드(close 등)등을 지정키 위한 예약어

 

float : 소수표현 예약어(double 이 64bit, float가 32bit 어지간하면 double쓰세영)

 

for : 반복문 지정 예약어

 

goto : 안씁니당

 

if : 분기 제어문 예약어

 

implements : 인터페이스 구현을 위한 예약어

 

import : 라이브러리 사용을 위한 예약어

 

instanceof : 인스턴스 타입 확인을 위한 예약어 infix로 사용된다.

 

int : 정수 자료형 예약어

 

interface : 인터페이스 구현 예약어

 

long : 64bit 정수 자료형 예약어

 

native : 메소드 구현시 다른 메서드들과 겹치는지 특정해주기 위해 사용되는 예약어

 

new : 새로운 인스턴스 생성 예약어

 

package : 패키지 지정 예약어

 

private : 가시성 지정 예약어(자기밖에 못봄)

 

protected : 가시성 지정 예약어(상속까진 봄)

 

public : 가시성 지정 예약어(다 봄<어멋>)

 

return : 반환문

 

non-sealed : 실드클래스 유무 표현을 위한 예약어(실드클래스는 상속이 안되영)

 

short : 16bit 정수형 자료형

 

static : 인스턴스 생성없이 접근가능한 클래스 종속적 매서드 / 변수 지정에 사용되는 예약어

 

strictfp : 소수점 지정을 위한 예약어(J2SE 1.2추가되었다고 합니다.)

 

super : 상위 클래스 지정자

 

switch : 다중분기 제어문

 

synchronized : 스레드 동기화를 맞추어주기위한 블럭을 생성하는 예약어

 

this : 자기자신의 인스턴스를 의미하는 예약어

 

throw : 에러발생시키는 예약어 당연하게도 catch에서 걸러질 수 있게 짜야된당

 

throws : 메서드 선언 시 사용, 메서드가 다음의 에러를 발생시킬 가능성이 있음을 암시

 

transient : 클래스 필드가 직렬화에 제외된다는 암시를 해주는 예약어

 

try : 에러처리를 위한 블럭을 시작하는 예약어, catch와 같이 사용된다.

 

void : 空

 

volatile : 변수를 메인 메모리에 저장할 것이가를 지정하는 예약어

 

while : 반복문 지정 예약어

프로그래밍과 알고리즘

 

우리는 JAVA를 이용해서 프로그래밍을 하고 있습니다! 근본적인 질문으로 프로그래밍이란 무엇일까요? 사전에 프로그래밍의 정의는 다음과 같이 서술되어있습니다!

컴퓨터 프로그래밍(영어: computer programming) 또는 간단히 프로그래밍(programming, 문화어: 프로그램 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말한다.

< 프로그래밍의 정의 : 출처 위키백과 https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D >

2번째 줄을 조금 강조해서 볼까요?

 

"하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말한다."

 

오호; 그럼 여기서 프로그래밍 언어는 우리가 선택한 JAVA가 될 것이고 우리는 구체적인 컴퓨터 프로그램을 만들기 위해서 프로그래밍이라는 행위를 하는 것을 알 수 있겠죠! 그런데 앞쪽에 문제를 해결하기 위해 [추상 알고리즘]을 사용한다고 되어있습니다! 알고리즘이란 무엇일까요? 이번에는 알고리즘의 사전적 정의입니다.

알고리즘(영어: algorithm), 셈법은 수학과 컴퓨터과학, 언어학 또는 엮인 분야에서 어떠한 문제를 풀어 맺기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것, 계산을 실행하기 위한 단계적 절차를 의미한다. 

< 알고리즘의 정의 : 출처 위키백과 https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 >

알고리즘은 문제해결을 위해서 사용하는 일련의 절차나 방법을 공식화한 형태라고 합니다! 알고리즘이 어떻게 생겼는지 한번 아래 그림을 보도록 할까요?

위 사진은 필자블로그의 다른 글이 WebHacking사이트 Suninatas의 1번 문제 풀이 알고리즘을 가져온 것입니다. 위와 같이 일련적으로 사용하는 문제 해결절차를 우리는 알고리즘이라고 정합니다!

 


변수와 상수

 

프로그래밍에는 어마어마하게 많은 수들이 있습니다! 위에 알고리즘만 보아도 위에서부터 2번째 그림에 str이라는 요소가 순서도 전반적으로 사용되고, 중간에는 "a"라던지 "in"이라던지, 고정된 값들이 있지요. 이런 수들은 프로그래밍에서 크게 가변성에 따라 다음의 2가지로 분류합니다.

  • 변수 : 프로그래밍을 사용하면서 변할 수 있는 수
  • 상수 : 변하지 않는 고정된 값

다음의 코드를 다들 코딩해 봅시다!

// VarConst.java

public class VarConst{

	public static void main(String[] args){
		int x = 1;			// x는 변수, 대입된 1은 상수
		int y = 3;			// y는 변수, 대입된 3은 상수
		String name = "REDUCTO";	// name은 변수, 대입된 "REDUCTO"는 상수

		System.out.println(x);
		x = y;				// 변수에는 다른 변수 대입가능
		//3 = x;			// 당연하게 상수는 대입불가
		System.out.println(y);
		System.out.println(x);
		System.out.println(name);
	}

}

Compile, 실행해보면 다음과 같은 값을 얻을 수 있습니다!

 

1
3
3
REDUCTO

* "=" 기호는 오른쪽의 값을 왼쪽에 대입하라는 의미입니다! 자세한건 다다음 시간(연산자) 편에서 계속됩니다!

main이라는 글자가 있는 줄의 바로 아래쪽 int x=3; 이라는 코드가 있습니다. int라는 단어는 넘어가고 x=3이니, 이제 우리의 변수 x는 3이라는 상수값을 가지고 있는 것입니다!


변수 명명법

 

변수 이름은 프로그래머가 작성하기 나름입니다! 특정한 합이라는 이름을 짓고 싶으면 sum이라는 변수명을 정의해도 되고, 임시 값이라는 의미를 담고 싶으면 tmp라는 이름을 사용하는 것도 전통적인 방법입니다! 단 다음의 규칙은 지켜야 됩니다!

  • 대소자는 구분되며, 변수 이름 길이에 제한은 없다.(x와 X는 다른 변수)
  • 숫자로 시작할 수 없으며, 공백은 사용불가( 3x, tmp_dd dd는 사용 불가한 변 수명 임)
  • 변수에 허용되는 글자는 대소문자, 숫자, _(언더스코어), $만 허용됨
  • 예약어 사용불가(예약어는 프로그래밍 언어에서 미리 정해둔 문법적으로 의미 있는 단어를 의미합니다.)

다음의 단어들이 변수의 이름으로 사용될 수 있겠네요!

ex > tmp, _file_name, isSetted, onClose, SUMOFSET2, m3val2

 

예약어는 다음의 글을 참고해 주세요!

2021.08.14 - [JAVA] - JAVA 예약어 종류

 

JAVA 예약어 종류

_(언더스코어) : JAVA 9부터 예약어가 되었습니다.(이제 단독으로 언더스코어만쓰는 변수명은 불가하네영) abstract : 추상클래스를 지정하는 데 사용됩니다. assert : 강한 에러검출을 위한 키워드 bool

tutoreducto.tistory.com


이번 시간에는 프로그래밍이 무엇인지, 우리가 하려는 JAVA 프로그래밍이란 무엇인지, 프로그래밍에서 사용되는 변수나 상수가 무엇인지에 대해서 알아보았습니다. 다음 시간에는 자료형이라는 주제로 또 인사드릴게요!

프로그램은 컴퓨터라는 빈 도화지에 내가 원하는 그림을 그리는 예술과도 같은 행위입니다! 물론 일단 예술과는 다르게 이곳에서는 "컴퓨터의 언어와 문법"으로 이야기해야만 그림으로 쳐줍니다. 이번 시간에는 어느 프로그램잉나 입문으로 여겨지는 Hello World를 JAVA로 작성해 보고 JAVA이론적인 이야기 기를 해볼 겁니다! ECPLISE를 설치하지 않은 메모장 플레이어는 아래 [코드 보기]로 내려가 주세요!


ECPLISE

1. 우리의 ECPLISE를 켜고 다음의 코드를 입력해 주세요 HelloWorld라는 프로젝트를 만들어 주세요!

 

2. [New] - [class]로 새로운 JAVA class를 만들겠습니다. 아무것도 건드리지 말고 Name만 Hello로 지어주세요!

3. 우리의 도화지가 완성되었습니다! 코드를 실행할 때는 위에 초록동그라미인 Run을(단축키 : [F11]) 클릭한다는 거, 잊지 말아 주세요.

 

코드

public class Hello{
	public static void main(String[] args){
		System.out.println("Hello World!");
	}
}

우리의 영광스러운 첫 코드가 위에 모습을 드러냈습니다. 실행 후 Run 해보면 Console화면에(메모장이라면 DOS창에) Hello World!라는 글을 볼 수 있습니다! 잠깐 우리의 코드가 실행된, 그러니까 Hello라는 파일이 있는 곳으로 이동해 볼까요? ECPLISE라면 C\Users\[사용자명]\eclipse-workspace\[프로젝트명]의 위치에서 우리가 만든 Hello. java라는 파일을 찾을 수 있죠.

.java라는 확장자는 java 언어로 만든 파일의 "소스파일"임을 의미합니다. 소스파일은 자바 컴파일러(javac)를 통해서 실행 가능한 바이트코드(. class)로 변환되고 실행될 때는 JVM이라는 영역에서 실행됩니다. 아직은 이해가 안되도 상관없습니다. 이해하면 더 좋지만 JAVA와 친숙해지고 나서 동작원리를 이해해도 되요. 지금은 1. 이 JVM이라는거 덕분에 JAVA는 플랫폼독립적으로 동작할 수 있다는 점 2. 사람이 만든 소스파일(.java)는 컴파일러(javac)가 실행가능한 바이트코드(.class)로 변환시켜준다는 점 만을 알고 넘어가자고요.

 


이번 시간에는 JAVA로의 첫걸음을 떼는 Hello World를 코딩해보았고, JAVA의 기본원리를 알아보았습니다! 천리길도 한걸음부터이니 차근차근 배우시면 언젠가 어엿한 프로그래머로 성장한 자신의 모습을 보실 수 있으실 거예요! 다음 시간에는 JAVA코딩의 규약에 대해서 알아보도록 하겠습니다!

 

 

+ Recent posts