반응형
반응형

 

package switch_case;

public class SwitchCase {

	public static void main(String[] args) {
		
		int num = (int)(Math.random()*7) + 1; // +1이 없으면 0부터 시작함
		
		switch (num) {
			case 1:
				System.out.println("1이 출력 됐습니다");
				break;
			case 2:
				System.out.println("2가 출력 됐습니다");
				break;
			case 3:
				System.out.println("3이 출력 됐습니다");
				break;
			case 4:
				System.out.println("4가 출력 됐습니다");
				break;
			case 5:
				System.out.println("5가 출력 됐습니다");
				break;
			case 6:
				System.out.println("6이 출력 됐습니다");
				break;
			default :
				System.out.println("잘못 출력 됐습니다");
				break;

	}


	}
}

switch case문이란 if문하고 유사합니다. switch 안에 어떤 값이 들어가냐에 따라

어떤 프로세싱을 할지가 정해지기 때문에 유사합니다 하지만 어떤 상황에는 이게 더 보기 편합니다.

그리고 이게 더 효율적일 때도 있습니다.

 

예를 들자면 게임 메뉴 같은 경우 1번 눌렀을 때 게임 시작

이런식으로 하면 되게 편하고 보기도 좋고 합니다.

if문을 쓰면 if else if else if .... 이런식으로 많이쓰고 가독성도 좋지 않아지게 됩니다.

 

코드를 설명하자면 (int)(Math.random() * 7) + 1 을 설명하자면 (int)(Math.random())은 하나라고 기억해두시고

*7이라는 건 7개의 경우의 수를 의미하고 + 1을 해준 이유는 + 1을 안 해주면 0 ~ 6까지 수가 나옵니다.

 

1 ~ 7까지 수를 원하면 +1을 해주면 됩니다.

반응형
반응형

 

package infix_operation;

public class InfixOperation {

	public static void main(String[] args) {
		
		int result = 0;
		
		result +=10; // result = result + 10
		System.out.println("result = " + result); // 10
		
		result -=5; // result = result - 5
		System.out.println("result = " + result); // 5

		result *=4; // result = result * 4
		System.out.println("result = " + result); // 20
		
		result /=2; // result = result / 2
		System.out.println("result = " + result); // 10
		
		result %=2; // result = result % 2
		System.out.println("result = " + result); // 0

	}

}

 

 

이항연산자란 주석에 적힌 거 처럼 저렇게 긴 식을 간단하게 줄일 수 있습니다.

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형
반응형
package unary_operation;

public class UnaryOperation {

	public static void main(String[] args) {
		
		int x = 10;
		int y = 10;
		int z = 0;
		
		System.out.println("-----------------");
		x++; 
		++x;
		System.out.println("x = "+x); // 12
		
		System.out.println("-----------------");
		y--; 
		--y;
		System.out.println("y = "+y); // 8
		
		System.out.println("-----------------");
		z = x++; 
		System.out.println("z = "+z); // 12
		System.out.println("x = "+x); // 13

		System.out.println("-----------------");
		z = ++x; 
		System.out.println("z = "+z); // 14
		System.out.println("x = "+x); // 14
		
		System.out.println("-----------------");
		z = ++x + y++ ; 
		System.out.println("x = "+x); // 15
		System.out.println("y = "+y); // 9
		System.out.println("z = "+z); // 23

	}

}

 

단항연산자란 항이 1개라는 의미이죠 여기서 x++ , ++x 와 같은 걸 의미합니다.

 

여기서 주의할 점이 있는데 x++란 ++x는 비슷하지만 다릅니다. x = x +1 처럼 1을 더하는 과정입니다만

z = ++x + y++ 에서 다른 점이 나옵니다. 

 

32번 Line에서 x = 14 , y = 8 입니다.

z = (++x)[15] + y[8] 이여서 z값은 23이 나오고 x의 경우는 15가 됩니다. 그리고 y의 경우는 

아까 z를 만드는 연산식에서 y++일 때 y + (++x) 이런식으로 계산 되는 거지만 결국엔 ++가 붙어있기 때문에

y의 값은 9가 됩니다.

 

 

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형
반응형
package logic_operation;

public class LogicOperation {

	public static void main(String[] args) {
		
		int v1 = 45;
		int v2 = 55;
		
		// ------------------ if문 2번 사용 ------------------ 
		if(v1 >= 40) {
			if(v1 <= 50) {
				System.out.println("v1은 40과 50사이에 수입니다.");
			}
		}
		
		// ------------------ 논리연산자 사용 ------------------ 
		
		if(v1 >= 40 && v1 <= 50 ) { // and
			System.out.println("v1은 40과 50사이에 수입니다.");
		}
		
		if(v2 >= 100 || v2 <= 80) { // or
			System.out.println("v2는 100보다 크거나 80보다 작은 수입니다.");
		}
		

	}

}

 

 

만약 40보다 크고 50보다 작은수라는 판별을 하려면 지금까지 배운 걸로는 if문을 두개를 써야합니다.

 

하지만 논리 연산자는 그걸 간단하게 만듭니다.

 

and라는 것을 아시는지요 그리고라는 의미로 A and B 라는 건 A도 만족시키고 B도 만족시켜야합니다.

Java에서 이러한 연산자를 표현하는 방식은 && 입니다.

 

또한 or도 존재합니다. A or B A를 만족시키거나 B를 만족시키거나 둘중에 하나만 만족시키면 충분합니다.

Java에서 이러한 연산자를 표현하는 방식은 || 입니다.

 

코드도 짧아지고 보기도 좋죠?

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형
반응형
package if_else;

public class IfElse {

	public static void main(String[] args) {
		
		char A = 'A';
		char B = 'B';
		
		if (A > B) {
			System.out.println("A가 더 큽니다.");
		}else if (A == B){
			System.out.println("A와 B는 같습니다.");
		}else {
			System.out.println("B가 더 큽니다.");
		}

	}

}

 

if문이란 가장 많이 쓰이는 구조로 () 소괄호 안에 내용이 참이면 {} 중괄호 내용을 실행합니다.

 

char형으로 비교연산이 가능하다고 했습니다.

 

A > B 비교했을 때 참이 아니기 때문에 다음으로 넘어갑니다.

else if 에서 A == B 입니까? 아니기 때문에 또 넘어갑니다.

else의 경우는 위의 경우가 다 아니면 else에 있는 중괄호 내용을 실행합니다.

B가 더 큽니다가 출력됩니다.

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형
반응형

 

package compare_operation;

public class CompareOperation {

	public static void main(String[] args) {
		
		int num1 = 10;
		int num2 = 10;
		
		// ------------------ int형 비교연산 ------------------
		
		boolean result1 = (num1 == num2); 
		boolean result2 = (num1 != num2);
		boolean result3 = (num1 <= num2);
		boolean result4 = (num1 >= num2);
		boolean result5 = (num1 < num2);
		boolean result6 = (num1 > num2);
		boolean result7 = !(num1 > num2); 
		
		System.out.println("result1 = " + result1); // true
		System.out.println("result2 = " + result2); // false
		System.out.println("result3 = " + result3); // true
		System.out.println("result4 = " + result4); // true
		System.out.println("result5 = " + result5); // false
		System.out.println("result6 = " + result6); // false
		System.out.println("result7 = " + result7); // true
		
		// ------------------ char형 비교연산 ------------------
		
		char char1 = 'A'; // 65
		char char2 = 'B'; // 66
		boolean result8 = (char1 < char2);
		
		System.out.println(result8); // true

	}

}

 

여기서 새로운 자료형이 나오는데 boolean 입니다.

true하고 false를 반환합니다. 비교 연산자를 써서 옳으면 true 틀리면 false를 반환하는 것입니다.

 

char형도 비교연산이 가능한데 유니코드표를 가지고 비교합니다.

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형
반응형

 

package basic_operation;

public class BasicOperation {

	public static void main(String[] args) {
		int v1 = 3;
		int v2 = 10;
		
		// 더하기 연산
		int result = v1 + v2;
		System.out.println("result : " + result); // 13
		
		// 빼기 연산
		result = v1 - v2;
		System.out.println("result : " + result); // -7
		
		// 곱하기 연산
		result = v1 * v2;
		System.out.println("result : " + result); // 30

		// 나머지 연산
		result = v1 % v2; 
		System.out.println("result : " + result); // 3
		
		// 나누기 연산
		double result2 = (double)(v1 / v2);
		System.out.println("result : " + result2); // 0.0
		
	}

}

 

가장 기본적인 연산입니다.

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형
반응형
package promotion;

public class promotion {

	public static void main(String[] args) {
		
		int A = 5;
		double B = 10;
		
		System.out.println(A+B); // 15.0

	}

}

 

A는 정수형이고 B는 실수형이지만 A+B해서 나온 값은 더 큰 범위인 실수형으로 나와줍니다.

자동으로 알아서 변환해주는 경우입니다. 이를 Promotion이라고 합니다.

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

 

package casting;

public class Casting {

	public static void main(String[] args) {

		// -------------- double 형변환 -----------
		
		int v1 = 5;
		int v2 = 2;
		
		double result6 = (double) v1 / v2 ; // 형변환 (v1만 double형이 됨)
		System.out.println("result6 = "+result6); //  2.5
		
		// -------------- float 형변환 -----------
		
		double result7 = (float)(v1 / v2) ; // v1 / v2 을 먼저함
		System.out.println("result7 = "+result7); // 2.0
				
		// ------------- char형변환 ---------------
		
		int i = 65;
		char c = (char)i;
		
		System.out.println("c : " + c); // c : A

		// -------------- int 형변환 -----------
		
		int i2 = (int)c;
		System.out.println("i2 : " + i2); // i2 : 65
		
	}

}

 

아직 / 연산에 대해서 안 알려줬지만 나누기입니다.

 

5를 2로 나누면 그 결과값이 소수점이 있기 때문에 double형이나 float형으로 받아야합니다.

 

그래서 result 가 double형인 것입니다.

 

변환형태(자료형 = 변수타입) 변수 입니다.

                (int) c

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형
반응형

변수가 뭐냐에 대해서 물어보신다면 물을 병에 담는다고하면 플라스틱 병에도 담을 수 있고 유리병에도 담을 수 있죠

어떠한 그릇에 담느냐가 변수타입 즉 자료형이라고 불리는 것이고 물을 담은 것에 이름을 붙히는 걸 변수명 입니다.

 

(삼다수 , 아이시스 , 백두산 등...) 물은 어떤 곳에든 담을 수 있지만 보통 물을 담으면

플라스틱으로 된 병에 담게 되죠 일반적으로 물을 가방안에 넣을 순 있지만 그 역할을 제대로 해내지 못합니다.

컴퓨터에 경우에는 아예 말도 안되는 건 아니지만 저러한 가방에 물을 넣는다라는 행위가 불가능합니다

그 어디에 담느냐에 대한 것을 정의한 것이 있는데 종류가 그렇게 많진 않습니다.

가장 많이 쓰이는 걸 순차적으로 알아가도록 하죠

 

여기서 int I = 400000... 을 봅시다 int형 (정수를 받는 곳)이름(변수명)I인 거고 그 안에는 4000.. 이라는

숫자가 들어가 있는 것입니다.

package datatype;

public class DataType {

	public static void main(String[] args) {
		
		// ----------  int vs long ----------
		
		int I = 400000000; 
		long L = 4000000000000000L;
		
		System.out.println("I : " + I + " " + "L : " + L);
		// I : 400000000 L : 4000000000000000
		
		// ----------  float vs double ----------
		
		float F = 5.555555555555555555f;
		double D = 5.555555555555555555;
		
		System.out.println("F :" + F + " " + "D : " + D);
		// F :5.5555553 D : 5.555555555555555

	}

}

int vs long (정수형)

int형의 범위를 넘어서는 경우 long타입을 써야합니다.

 

float vs double (실수형)

float형의 범위보다 double형이 소수점을 더 많이 표현 가능합니다. 

 

 

int형같은 경우 범위를 넘어서면 에러가 나지만

float형 같은 경우 범위 넘어가면 소수점이 잘려서 출력됩니다. 그래서 대부분 double형을 쓰는 걸 추천드립니다.

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

 

package datatype;

public class ChartType {

	public static void main(String[] args) {

		char c1 = 'A'; 
		char c2 = 65;

		char c4 = '가';
		char c5 = 44032;
		
		System.out.println(c1); // A 
		System.out.println(c2); // A
		
		System.out.println(c4); // 가
		System.out.println(c5); // 가
		
	}

}

Char타입 하나의 문자만 받습니다. 

 

 65라는 정수를 넣었는데 A가 나오는걸까요? 그거는 유니코드에 해당하는 65에 값이 A이기 때문입니다.

44032를 출력했을 때 '가' 가 나오는 현상도 같은 이유입니다.

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형