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


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



+ Recent posts