1.Switch Case

먼저 Switch Case문은 


Switch(구분 값){

case "값1" :

내용1

case "값2" :

내용2

case "값3" :

내용3

}


위와 같이 사용하며


구분 값을 설정하고 만약 그 값이 값1이라면 내용1을 실행


값2라면 내용2를 실행한다.


알맞은 값의 내용을 실행하는 구문이고 따로 구문을 해제하지 않으면 밑으로 쭉 실행되므로


내용 밑에 break;를 넣어 끝남을 명시해줘야 함


다음 예제는 if else문으로 만든 자판기를 Switch Case문으로 다시 만든 것입니다.

package chap02.ex05.switchStmt;

import java.util.Scanner;

public class Japangi {

	public static void main(String[] args) {
		//if~else -> switch
		System.out.print("음료를 선택 하세요.(펩시, 코카콜라, 맥스웰, 생수) : ");
		Scanner scanner = new Scanner(System.in);
		String item = scanner.nextLine();
//		if(item.equals("펩시")) {
//		System.out.println("당신은 펩시충입니까?");
//		}
//		if(item.equals("코카콜라")) {
//			System.out.println("당신은 코카충입니까?");
//		}
//		if(item.equals("맥스웰")) {
//			System.out.println("이것은 블루하와이 입니다.");
//		}
//		if(item.equals("생수")) {
//			System.out.println("미네랄이 풍부한 수돗물을 정수한 생수입니다.");
//		}
//		if(item.equals("펩시")) {
//			System.out.println("당신은 펩시충입니까?");
//		}
//		else if(item.equals("코카콜라")) {
//			System.out.println("당신은 코카충입니까?");
//		}
//		else if(item.equals("맥스웰")) {
//			System.out.println("이것은 블루하와이 입니다.");
//		}
//		else if(item.equals("생수")) {
//			System.out.println("미네랄이 풍부한 수돗물을 정수한 생수입니다.");
//		}
//		else {
//			System.out.println("항목에 해당하는 음료만 골라요;;");
//		}
		
		
		// JDK 1.6버전 부터 case에 문자열 사용 가능
		// Switch는 case의 조건을 메모리에 다 담아서 메모리를 조금 더 쓰고 속도가 if보다 조금 더 빠르다.
		switch(item) {
			case "펩시":
				System.out.println("당신은 펩시충입니까?");
				break;
			case "코카콜라":
				System.out.println("당신은 코카충입니까?");
				break;
			case "맥스웰":
				System.out.println("이것은 블루하와이 입니다.");
				break;
			case "생수":
				System.out.println("미네랄이 풍부한 수돗물을 정수한 생수입니다.");
				break;
			default:
				System.out.println("항목에 해당하는 음료만 골라요;;");
		}
		scanner.close();
	}

}


'개념 및 코딩 > 02.조건문, 반복문' 카테고리의 다른 글

[JAVA]02-05.반복 제어 continue, break  (0) 2018.08.22
[JAVA]02-04.While, Do-While 문  (0) 2018.08.22
[JAVA]02-03.For 반복문  (0) 2018.08.22
[JAVA]02-01.if 조건문  (0) 2018.08.22

1.if 조건문


if조건문은 괄호 안()에 조건을 입력하여 참일 경우에 {} 중괄호 안의 내용을 수행하고


조건에 맞지 않을 경우에는 아래로 통과하고 else if로 조건과 기능을 추가 할 수 있다.


else는 설정한 조건이 전부 맞지 않을경우 실행된다.


형식은 아래와 같다.


if (조건문) {

내용

} else if (조건문) {

내용

} else {

내용

}


조건문은 true false값을 받는다.


아래의 예제를 통해 이해해보자.



package chap02.ex04.ifstate;

public class condition {

	public static void main(String[] args) {
                if (true) {
			System.out.println("무조건 실행");
		}
		if(false) {
			System.out.println("데드코드");
		}
		Boolean a = true;
		Boolean b = false;
		if(a == true) {
			System.out.println("실행 됨");
		}
		if(b == true) {
			System.out.println("실행 안됨");
		}
		if(a) {
			System.out.println("a는 true 이므로 실행");
		}
		if(!b) {
			System.out.println("b의 반전은 true 이므로 실행");
		}
	}
	}
	
}



이번에는 if문과 연산자를 이용해서 자판기를 만들어보자.


Scanner는 콘솔에 값을 읽을 수 있게끔 하는 코드이다. 나중에 클래스를 배우고 보면 이해가 될 것이다.


package chap02.ex04.ifstate;

import java.util.Scanner;

public class Japangi {

	public static void main(String[] args) {

		//돈과 음료를 선택
		//{콜라 : 2,000, 사이다 : 1,000, 주스 : 1,000, 생수 : 500}
		Scanner scan = new Scanner(System.in);
		Scanner scan2 = new Scanner(System.in);
		String item;
		int money = 0;
		int insert = 0;
		int result = 0;

		System.out.println("음료를 골라주세요!(콜라, 사이다, 주스, 생수)");
		item = scan.nextLine();
		System.out.println("선택한 음료 : " + item);
		if(item.equals("콜라")) {
			System.out.println("콜라는 2,000원 입니다.");
			money = 2000;
		} else if(item.equals("사이다")) {
			System.out.println("사이다는 1,000원 입니다.");
			money = 1000;
		} else if(item.equals("주스")) {
			System.out.println("주스는 1,000원 입니다.");
			money = 1000;
		} else if(item.equals("생수")) {
			System.out.println("생수는 500원 입니다.");
			money = 500;
		}
		
		System.out.println("투입할 돈을 입력해주세요!");
		insert = Integer.parseInt(scan2.nextLine());
		if(insert > money) {
			result = insert - money;
			System.out.println("잔돈은 " + result + "원 입니다. " + item + "을(를) 아래에서 가져가세요.\n제가 가지겠습니다. 안녕히 가십시오.");
		} else if(insert == money) {
			System.out.println("잔돈은 0원 입니다. " + item + "을(를) 아래에서 가져가세요. 안녕히 가십시오.");
		} else if(insert < money) {
			result = money - insert;
			System.out.println("돈이 " + result + "원 만큼 부족합니다. 경찰을 불렀으니 잠시만 기다려주세요.");
		}
		scan.close();
		scan2.close();
	}

}


'개념 및 코딩 > 02.조건문, 반복문' 카테고리의 다른 글

[JAVA]02-05.반복 제어 continue, break  (0) 2018.08.22
[JAVA]02-04.While, Do-While 문  (0) 2018.08.22
[JAVA]02-03.For 반복문  (0) 2018.08.22
[JAVA]02-02.Switch Case  (0) 2018.08.22

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);
		
	}

}




1. Package Explorer에 만들어진 프로젝트를 확장하고 src에 우클릭


New - Package를 선택하고 마음에 드는 패키지 이름을


Name에 입력하고 Finish를 눌러줍니다.


마침표(.)를 사용해서 구분이 가능합니다. (ex chaper01.ex01 / chapter01.ex02)













2.클래스 파일 생성





생성한 패키지에 우클릭 - New - Class





Name에 원하는 제목을 입력하고 Finish를 누르면 Main 함수가 없이 생성이 됩니다.


나중에는 각 종 항목을 이용할텐데 그 때를 위하여 전부 설명



Name : .java의 파일 제목이 됩니다.

Modifiers : 클래스 선언 시 정하는 접근 제한자 종류를 미리 설정합니다.

Superclass : 다른 클래스를 상속받도록 설정하고 생성합니다

Interfaces : 다중 상속이 안되는 java에서 다중 구현이 가능한 Interface

method stubs : main 메서드를 만들건지 부모 클래스의 생성자를 만들건지 등 설정




Eclipse는 기본적으로 main 메서드를 중심으로 돌아가고 꼭 하나는 추가되어 있어야함.



다운받은 폴더의 Eclipse를 실행 시키면 Workspace를 설정하라는 창, 작업 공간을 만들어 달라고 나옵니다.


앞으로 만들 Java 파일이 저장될 위치를 설정하는것 입니다.


원하시는 경로에 작업 공간 설정을 해주시고 실행 시 마다 뜨는게 귀찮다면


Use this as the default and do not ask again을 체크합니다.






Eclipse의 Workspace가 설정 된 후 처음 화면에서


좌측 상단 Welcome을 꺼주시면 다음과 같은 화면이 나타납니다.





좌측에 Project Explorer 상자에


우클릭 - New - Project를 누르고


Java Project를 선택하고 Next를 누르면 다음과 같은 창이 하나 뜹니다.





상단의 Project Name에 원하는 이름을 입력하고


하단의 Finish를 누르면 프로젝트가 생성 됩니다.

1. 키를 눌렀을 때 추천 입력 리스트가 나오게 하는 방법 (단축키 Ctrl + 스페이스 자동으로)


Windows - Preferences


Java - Editor - Content Assist - Auto activation triggers for Java


안에 있는 상자에 기본 값은 마침표 하나만 적혀 있는데 abcd~z 까지 전부 입력하면 활성화 됨



2. 한글이 코딩 되게끔 인코딩 설정 변경하기.




Windows - Preferences


General - Workspace - Text file encoding - Other - UTF-8로 설정




3. Eclipse의 추가 기능 다운받는 스토어


상단 메뉴 바의 Help - Eclipse Marketplace



4. Eclipse에서 또 다른 Workspace를 만드는 방법


상단 메뉴 바의 File - Switch Workspace - 목록에 있는 항목 or Other


목록에 있는 항목을 선택하면 예전에 만들어둔 Workspace가 바로 열리고


Other을 누르면 새로 만들거나 예전에 만들어둔 Workspace를 찾아서 시작할 수 있음


Workspace에 Eclipse의 설정이 따라가기 때문에 새로 만들경우 다시 개인설정을 해 주어야 한다.

'Java > 01.Eclipse 설치 및 용어 정리' 카테고리의 다른 글

[JAVA]01-02.Eclipse 설치  (0) 2018.08.20
[JAVA]01-01.JDK 다운로드 및 설정  (0) 2018.08.20

+ Recent posts