1.For 반복문


for(초기식; 조건식; 증감식) {

반복 할 내용

}


for문은 위와같은 형식으로 사용하며 조건식이 true일 경우 계속 반복해서 내용에 작성한 코드를 실행한다.


다음 예제를 통해 사용법을 확인해보자



package chap02.ex06.forEx;

public class ForStmt {

	public static void main(String[] args) {
		// for(이녀석이; 이것을 만족하면 끝나고; 증가 또는 감소)
		// 물 10잔 떠오기
		for(int cup = 1; cup <=10; cup++) { // int cup은 지역변수!
			System.out.println("물 " + cup + "잔 떠 왔습니다.");
		}
		
		// 한 잔의 커피에 설탕을 2스푼씩 넣어라
		//총 10잔의 커프를 타라
		int sugar = 0;
		
		for(int cup = 1; cup <= 10; cup++) { // 위의 for문에서 cup이 지역변수로 해제됬으므로 다시 한번 선언
			System.out.println("커피 " + cup + "잔 째");
			
			for(int spoon = 1; spoon <= 2; spoon++) {
				System.out.println("설탕 : " + spoon + "추가");
				sugar++;
			}
		}
		System.out.println("설탕 총 합 : " + sugar);
	}
}


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

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

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

}




다운받은 폴더의 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를 누르면 프로젝트가 생성 됩니다.

+ Recent posts