1.연산자


연산자는 특별히 어려울 것은 없을것인데 익숙한 연산자는 생략하고 프로그래밍에서 나오는 생소한 연산자가 있을 수 있다.


몇개만 추려보자면


증감 연산자


X++ , ++X  : 같이 표시하고 연산자가 뒤에 있다면 계산 후에 1을 더하고 앞에 있다면 1을 더하고 계산하는 것.


&& : and 연산자로 양쪽의 조건이 둘 다 만족하면 true를 반환


|| : or 연산자로 양쪽의 조건이 둘 중 하나만 만족하더라도 true를 반환 (백스페이스 키 옆 쉬프트+원 키)


논리 연산자


yn != yn : !=는 bool타입 true값을 false로, 반대로 false값은 true로 바꿔준다.


비교 연산자


== : 이퀄이 2번 쓰여지는 ==은 양쪽 값이 같으면 true 값이 다르면 false 값을 반환한다.


 단, String 타입의 비교는 ==을 사용하는 것을 지양하고 되도록이면 String변수1.equals(String변수2)의 형식으로 


<, >, <=, >= : 익숙한 연산자로 생략



아래의 각종 예제를 통해 어떻게 쓰이는지 이해해보자.



package chap02.ex01.one;

public class One {

	public static void main(String[] args) {
		// 증감 연산자
		int x = 1;
		int y = 1;
		
		x++; // 증가가 나중
		++y; // 증가가 먼저
		
		System.out.println("X : " + x);
		System.out.println("Y : " + y);
		
		int result  = (++x) + 10;
		int result2 = (y++) + 10;
		
		// 12 : x가 먼저 증가하고 10과 더함.
		// 11 : y가 10과 더해지고 y가 증가.
		System.out.println("1 : " + result);
		System.out.println("2 : " + result2);
		
		// 논리 부정 연산자(논리수학, 이산수학)
		boolean yn = true;
		System.out.println("Y : " + yn);
		yn = !yn;
		System.out.println("Y : " + yn);
	}

}
package chap02.ex02.two;

public class Compare {

	public static void main(String[] args) {
		
		int v1 =1;
		double v2 = 1.0;
		int v3 = 4;
		String v4 = "JAVA";
		String v5 = new String("JAVA");
		
		//비교는 왼쪽부터 읽어 나간다.
		System.out.println(v1==v2);		//T
		System.out.println(v1!=v2);		//F
		System.out.println(v1<v3);		//T
		System.out.println(v4==v5); // 문자열 비교에 ==를 쓰면 안되는 이유
		System.out.println(v4.equals(v5)); // '.equals'를 사용
		
		// AND 조건 : 둘 다 만족(&&)
		
		// OR  조건 : 둘 중 하나 만족(||)
		int value = 6;
		System.out.println(value > 1 && value <7);
		System.out.println(value % 2 ==0 || value % 3==0);

		
	}

}
package chap02.ex02.two;

public class Suhstitution {

	public static void main(String[] args) {

		// A += 10 == A = A + 10
		String str = "대입 연산자는";
		str += " 합 한 값을";
		str += " 누적하는데";
		str += " 유용하게 사용 된다.";
		System.out.println(str);
		
		int num = 1;
		num += 2;
		num += 3;
		num += 4;
		num += 5;
		System.out.println(num);
	}

}
package chap02.ex02.two;

public class Two {

	public static void main(String[] args) {

		// %연산(modify 연산)
		// 홀짝, 배수 계산
		System.out.println("5%2 = " + 5%2);
		System.out.println();
		
		String str1 = "JDK " + 8 + 0.65; // 문자 + 숫자
		System.out.println(str1);
		
		String str2 = 8 + 0.65 + " version"; // 숫자 + 문자
		System.out.println(str2);
		
		String str3 = "JDK " + (8 + 0.65);
		System.out.println(str3);
	}

}



2. 삼항 연산자  [조건식] ? [값1] : [값2]


삼항 연산자는 '[조건식] ? [값1] : [값2]'와 같이 쓰는데


만약 조건식이 참, true일 경우 값1을 반환하고 false일 경우는 값2를 반환하게 된다.


int div = 33;
String result = (div%2 == 0) ? "짝수" : "홀수";
System.out.println(result + " 입니다.");


1. 메소드


프로그래머가 필요한 함수를 만들어 사용하는 것이다.


메소드를 통해 특정 기능을 만들어서 사용한다면 여러번 사용할 수 있고 매개변수를 다르게 입력해서 재사용하기 편하다.


아래 예를 보자



package chap01.ex04.methodStr;

public class Laundary {

	public static void main(String[] args) {
		
		String 빨래감 = "더러운 옷";
		
		//메서드 사용==메서드 호출
		String 바구니 = 세탁기(빨래감);
		System.out.println(바구니);
		
	}

	public static String 세탁기(String 빨래감) {
		System.out.println(빨래감+"세탁하고");
		System.out.println(빨래감+"탈수하고");
		
		return "깨끗한 옷";
	}
	public static String 세탁기(String 빨래감, String 세제) {
		System.out.println(세제+"사용");
		System.out.println(빨래감+"세탁하고");
		System.out.println(빨래감+"탈수하고");
		
		return "깨끗한 옷";
	}
}


메소드는 [제한자] [정적키워드] [리턴타입] [메소드 이름] ([매개변수]) { } 형식으로 선언되고


위의 예는 세탁기가 메소드가 된다.


메소드의 이름은 같지만 매개변수를 다르게 하여 같은 이름의 메소드를 상황에 따라 여러개 선언할 수 있고 (오버로딩)


리턴타입을 정하여 함수 사용 시 반환값을 정할 수 있다. 만약 void로 선언된다면 리턴타입은 쓰지 말아야 한다.


매개변수는 위와 같이 이름을 정하여 메소드 안에서 사용 할 수 있다.


java는 변수나 메소드 등 이름을 한글로 써도 위와같이 지원을 해주지만 예전부터 많은 사람이 영어로 써 왔고 나머지 코드들이 영어라서


한/영키 전환 실수 등으로 인해 이름은 영어로 선언하는걸 추천.



1. 캐스팅, Casting


캐스팅은 형 변환이라고 하는데 어떤 변수에 있는 값을 다른 변수 타입에 맞게끔 변환하여주는 것을 말한다.


ex) double형 변수를 int형 변수에 넣는다.  intValue = (int)doubleValue; (명시적 형변환)


위의 예와는 반대로 int -> double과 같이 작은 방(int)에서 큰 방(double)으로 변환 할 때는 묵시적 형변환으로 바로 넣어줘도


오류가 발생하지 않는다.


아래 예를 써보고 숙지하자.


package chap01.ex03.casting;

public class Ex02 {

	public static void main(String[] args) {
		// 명시적 형변환(큰->작, 동일 크기 끼리 용도 변환 할때)
		char charVal;
		int intVal;
		long longVal;
		float floatVal;
		double doubleVal;
		
		
		intVal = 44032;
		charVal = (char) intVal; // 명시적 형변환
		// 명시적 형변환은 보통 이클립스가 알아서 해 준다.
		System.out.println(charVal);
		
		// long->int
		longVal = 500;
		intVal=(int) longVal;
		System.out.println(intVal);
		
		// double->float
		doubleVal = 3.14;
		floatVal=(float) doubleVal;
		System.out.println(floatVal);
		
	}

}


2. MAX_VALUE, MIN_VALUE


변수방 타입에는 각각 사이즈가 정해져 있는데 그 값이 몇인지 보여주는 메서드이다.



package chap01.ex03.casting;

public class Ex03 {

	public static void main(String[] args) {
		System.out.println("Byte 최대값 : " + Byte.MAX_VALUE);
		System.out.println("Byte 최소값 : " + Byte.MIN_VALUE);
		System.out.println("Int 최대값 : " + Integer.MAX_VALUE);
		System.out.println("Int 최소값 : " + Integer.MIN_VALUE);
		System.out.println("Long 최대값 : " + Long.MAX_VALUE);
		System.out.println("Long 최소값 : " + Long.MIN_VALUE);
		System.out.println("float 최대값 : " + Float.MAX_VALUE);
		System.out.println("float 최소값 : " + Float.MIN_VALUE);
		System.out.println("Double 최대값 : " + Double.MAX_VALUE);
		System.out.println("Double 최소값 : " + Double.MIN_VALUE);
	}

}


1. 전역변수, 지역변수




변수는 크게 두 가지로 구분이 되는데 전역, 지역변수가 있다.


전역변수는 코드 가장 바깥에 선언된 변수로 그 코드 전체적으로 사용이 가능하고


지역변수는 메서드 같이 작은 범위 안에서만 선언되어 사용 가능한 변수이고 범위가 끝나면 해제되어 사용할 수 없다.


아래 코드를 예로 보자.



package chap01.ex02.scope;

public class VarScope {
	
	static String str ="장바구니"; //전역변수

	public static void main(String[] args) {
		
		//변수는 외부에서 생성되면 내부에서 사용 가능
		//내부 생성되면 외부에서 사용 불가능
		//장바구니와 마트 바구니 차이
		System.out.println(str);
		
		int num = 123;
		for(int i = 0; i < 5; i++) {
			System.out.println(i+" : "+num);
			
		}
		System.out.println(str);
		//System.out.println(i);

	}

}


str 변수는 "장바구니"로 초기화되고 바깥에서 선언되어 'System.out.println(str);'에서 무사히 출력이 된다.


하지만 for문 안에서 선언된 i는 for 문이 끝나고 사용하지 못하기 때문에 'System.out.println(i);'는 오류가 발생하게 된다.


위의 예를 복사해서 //System.out.println(i); 중 //를 지워보면 오류가 뜨는걸 확인 할 수 있다.

프로젝트 명 : Chapter01

패키지 명 : chap01.ex01.define

클래스 명 Variable.java(main)




- 자료형 -


프로그래밍 언어에서 사용되는 자료형 선언입니다.

아래와 같은 종류가 있습니다.


논리형

boolean


문자형

char


정수형

byte

short

int

long


실수형

float

double



몰론 위의 종류보다 더 있지만 일반적으로 사용하는 자료형이고, 이 자료형을 사용하기 위해서는 아래와 같이 변수방 생성과 함께 선언해줍니다. 변수방은 자료형을 설정하여 그 자료형에 맞는 값만 들어갈 수 있습니다.



선언 형식


[자료형] [원하는 변수방 이름];



- 초기화 -


초기화는 변수방을 선언할 경우에 디폴트 값인 0이나 설정되어 있는 값이 들어가게 되는데 변수 선언하고 값을 설정할 때를 말합니다.


[자료형] [원하는 변수방 이름] = [값];


or


[자료형] [원하는 변수방 이름]

[원하는 변수방 이름] = [값];



아래는 위의 내용을 활용한 예제입니다.


package chap01.ex01.define; // 패키지 명이 표시됨

public class Variable { // 설정한 클래스 명

	public static void main(String[] args) { // 클래스 생성 시 main 메서드 생성을 체크 했을 때 생성

		boolean varBool = true;
		System.out.println(varBool); // 출력 문구
		
		int varInt = 0;
		long varLong = 1000000;
		System.out.println(varInt);
		System.out.println(varLong);
		
		float varFloat = 0.01f;
		double varDouble = 0.000001;
		System.out.println(varFloat);
		System.out.println(varDouble);
		
		char varChar = 'A';
		String varString = "Y SOL";
		System.out.println(varChar);
		System.out.println(varString);
		
	}

}


+ Recent posts