국비 2일차_2

강지수·2023년 12월 13일
0

국비교육

목록 보기
4/97

CastExp class 생성 (Casting : 형변환)

형변환

기본형 타입 크기 비교

byte < short = char < int < long < float < double

강제 형변환 : 큰 내용을 작은 그릇에 담을 때
자동 형변환 : 작은 내용을 큰 그릇에 담을 때 (= 묵시적 형변환)

		int intValue=65;
		char charValue=(char) intValue;

int 가 char 보다 큰데, int 를 char 로 변환시키려 할 때 -> 강제 형변환 사용
(char) 부분이 강제 형변환 시켜주는 부분

		intValue=charValue;

위 같은 경우는 자동 형변환이 된다. (char < int)

CharExp class 생성

package com.tech.gt01;

public class CharExp {

	public static void main(String[] args) {
		char c1='A'+1;

		System.out.println("c1:"+c1);
		System.out.println("c1:"+(int)c1);

		int c2=70;
		System.out.println("c2:"+c2);
		System.out.println("문자로 표현:"+(char)c2);
	}

}

결과

c1:B
c1:66
c2:70
문자로 표현:F

ASCII 코드표에서 A의 값은 65, 65+1 = 66 => B, 70 => F


진리표

T = 1, F = 0

and (&) : 둘 다 T 면 T
or (|) : 둘 중 하나라도 T 면 T
xor (^) : 두 값이 다르면 T
Not (~) : 반대


BitLogicalExp class 생성

package com.tech.gt01;

public class BitLogicalExp {

	public static void main(String[] args) {
		System.out.println(Integer.toBinaryString(45));
		System.out.println(Integer.toBinaryString(25));

		System.out.println(45&25); // 비트연산자 and (&)
		System.out.println(45|25); // 비트연산자 or (|)
		System.out.println(45^25); // 비트연산자 xor (^)
		
	}

}

결과

101101
11001
9
61
52

이같은 논리연산은 논리식, 조건식에 필요함


DenyLogicalOperatorExp class 생성

package com.tech.gt01;

public class DenyLogicalOperatorExp {

	public static void main(String[] args) {
		boolean play1=false;
		boolean play2=false;

		System.out.println(play1);
		System.out.println(!play1);
		System.out.println(play2);
		System.out.println(!play2);

		play2=!play2; // 비교연산자 not (!), 역함수
		System.out.println(play2);
	}

}

결과

false
true
false
true
true

//		사용 예시
		boolean play3=true;
		boolean play4=false;
		
		boolean result1=play3 || play4; // or
		System.out.println("result1:"+result1);
		
		boolean result2=play3 && play4; // and
		System.out.println("result2:"+result2);
		
		boolean play5=false;
		boolean result3=play3 || play4 || play5;
		System.out.println("result3:"+result3);
		
		boolean result4=play3 && play4 && play5;
		System.out.println("result4:"+result4);
		
		boolean result5=play3 || play4 && play5;
		System.out.println("result5:"+result5);
		
		boolean result6=play3 && play4 || play5;
		System.out.println("result6:"+result6);

결과

result1:true
result2:false
result3:true
result4:false
result5:true
result6:false

개수에 구애받지 않는다, 순서는 연산순서에 따라 결정된다.
&& 가 || 보다 먼저 연산됨


CompareOperatorExp class 생성

package com.tech.gt01;

public class CompareOperatorExp {

	public static void main(String[] args) {
		int num1=10;
		int num2=10;
		
		System.out.println("바로출력:"+(num1==num2));
//		num1 과 num2 가 같은가? true/false

	}

}

결과

바로출력:true

		boolean b1=num1==num2;
//		num1 과 num2 가 같은가? true/false
		boolean b2=num1>=num2;
//		num1 이 num2 보다 크거나 같은지? true/false
		boolean b3=num1!=num2;
//		num1 이 num2 가 같지 않은가? true/false
		
		System.out.println(b1);
		System.out.println(b2);
		System.out.println(b3);

결과

true
true
false

>= 는 가능, => 는 불가능

		char c1='A';
		char c2='B';
		boolean b4=c1>c2;
		
		System.out.println(b4);

결과

false

문자도 논리연산이 가능


LongExp class 생성

package com.tech.gt01;

public class LongExp {

	public static void main(String[] args) {
		long var1=10;
		long var2=10L;
		
		System.out.println("var1 : "+var1);
		System.out.println("var2 : "+var2);

	}

}

결과

var1 : 10
var2 : 10

ArithmeticOperatorExp class 생성

package com.tech.gt01;

public class ArithmeticOperatorExp {

	public static void main(String[] args) {
		int v1=5;
		int v2=2;

		int result1=v1+v2;
		System.out.println("result1 : "+result1);

		int result2=v1-v2;
		System.out.println("result2 : "+result2);

		int result3=v1*v2;
		System.out.println("result3 : "+result3);

		int result4=v1/v2;
		System.out.println("result4 : "+result4);
		
		int result5=v1%v2; // 나머지 연산, 몫은 따지지 않음
		System.out.println("result5 : "+result5);

	}

}

결과

result1 : 7
result2 : 3
result3 : 10
result4 : 2
result5 : 1

MultiPlusExp class 생성

package com.tech.gt01;

public class MultiPlusExp {

	public static void main(String[] args) {
		int var1=1;
		int var2=2;
		int var3=3;

		int result1=var1*var2*var3;
		System.out.println("result1:"+result1);

		int result2=var1+var2*var3; // 연산자 우선순위
		System.out.println("result2:"+result2);

		int result3=var1*var2+var3;
		System.out.println("result3:"+result3);

	}

}

결과

result1:6
result2:7
result3:5

		int result4=(var1+var2)*var3;
		System.out.println("result4:"+result4);

결과

result4:9

연산자의 우선순위에 따라, 연산 방향에 따라 연산 진행, 단, 괄호 우선


미션

자판기 (커피, 음식, 과자) 흐름도를 만드세요
제목 : 홍길동자판기순서도2
50개 이상
숫자 및 자연어 처리로 작성하세요
html로 첨부

내가 만든 순서도

profile
개발자 준비의 준비준비중..

0개의 댓글