basicJAVA/2. 연산자

201012 Operation_3(2)

unemo 2020. 10. 12. 10:51
반응형
 ctrl + alt 위아래 방향키 그 줄 (혹은 블록한 줄) 복사
/*
		 5. 비교연산자
		 	- 두 개의 변수 또는 리터럴을 비교하는데 사용하는 연산자
		 	- 주로 조건문과 반복문의 조건식에 사용되며 연산결과는 true 또는 false의
		 	   결과를 가진다.
		    - 이항연산자이다 (두개가 있어야 비교가능)
		    
		6. 대소비교연산자 (< > <=, >=)
			- 사용할수없는것 (boolean, 참조형(주소가 랜덤으로생김)에는 사용하지X
		
		7. 등가비교연산자 ( ==, != )
			- 모든 자료형에 사용가능 ( 기본형뿐만 아니라 boolean, 참조형도 가능)
			- 기본형변수에는 저장된 값을 비교하고, 참조형의 경우 주소를 비교한다.
			
			수식				연산결과
			x>y				x가 y보다 클떄만 true 그 외엔, false
			x<y				x가 y보다 작을때만 true 그 외엔, false
			x>=y				x가 y보다 크거나 같을때만 true 그 외엔, false
			x<=y				x가 y보다 작거나 같을때만 true 그 외엔, false
			x==y				x와 y가 같을때만 true 그 외엔, false
			x!=y				x와 y가 다를떄만 true 그 외엔, false
			
		 */
		
		System.out.println('0'==0); // char타입의 0과 숫자 0 이 같나?
		//char int > int int > char0 = 48
		//즉 49는 0과 다르니까 false
		
		System.out.println(10 == 10f); //int float > float float
		System.out.println(0.5 == 0.5f); //double float > double double
		System.out.println(0.1 == 0.1f); //다르다 왜?
		//double은 정확하게 0.1을 지목하지않음. 0.5는 0.5인데
		//double은 2의 n승으로 표현하는데, 
		//2^1 = 1*2
		//2^-1 = 1/2 = 0.5 < double로 정확히 표현이 됨
		//0.1은 2의 n승으로 표현이 안됨
		//2^-2,2^-3 (0.25,0.125..)등만 정확히 표현되고 나머지는 근사치로 표현됨 (double타입얘기임)
		
		/*
		 8. 비트연산자 (&, |, ^) ( 비트붙었으니 2진수로 바꾸고시작 )
		 	- 이진비트연산을 수행한다
		 	- 실수형을 제외한 기본 자료형에 사용할 수 있다.
		 	
		 	| (or연산) - 피연산자중 한쪽의 값이 1이면 1의 결과를 가진다. (합집합)
		 	& (and연산 ) - 피연산자중 양쪽모두 1이면 1의 결과를 가진다. (교집합)
		 	^ (XOR연산) - 피연산자가 서로 다를때만 1의 결과를 가진다.(여집합 = 합집합-교집합)
		 				-전자기 회로만들때 많이씀
		 				
		 				
		 
		 */
		
		
		System.out.println(3|5);
		System.out.println(3&5);
		System.out.println(3^5);
		
		
		/*
		 9. 논리연산자 (왼쪽의 논리결과와 오른쪽논리결과를 합쳐서 결과를 다시연산할떄)
		  	- 피연산자로 boolean형 또는 boolean형 값을 결과로 하는 조건식만 허용한다.
		  	- 조건식의 결합에 사용한다.
		  	- &&가 ||보다 연산 우선순위가 높다. (and가 * or가 더하기 느낌)
		  	
		  	&& (and결합) - 피연산자 양쪽 모두 true일때만 true의 결과를 가진다.
		  	|| (or결합) - 피연산자중 한쪽만 true이면 true의 결과를 가진다.
		  	
		사용자로부터 받은 값이 5 초과 20 미만일때 true의 결과를 가지도록 프로그래밍하여라
		 */
		
		int input = 8;
		
		//5 < input <20
		//두개나 나눠야함 5 < input && input <20 이렇게  
		boolean result32 = 5 < input && input <20; // 5<input도 불린이고 뒤도 불린이니까
		System.out.println("입력하신"+input+"를(을) 5초과 20미만의 범위를 검사한 결과는 " + result32 + "이다");
		
		
		//1. 
		char cho1 = 'z';
		//boolean re1 = 65<=cho1 && cho1<=90;
		boolean re1 = 'A'<=cho1 && cho1<='Z';
		System.out.println(re1);
		//boolean re2 = 97<=cho1 && cho1<=122;
		boolean re2 = 'a'<=cho1 && cho1<='z';
		System.out.println(re2);
		boolean re3 = 'A'<=cho1 && cho1<='Z'||'a'<=cho1 && cho1<='z';
		System.out.println(re3);
		boolean re4 = '0'<=cho1 && cho1 <='9';
		//char에서 숫자형은 0~9까지밖에안됨 (10은 두글자니까)
		System.out.println(re4);
		//**ASCII코드 찾아서 하는게 아니었다! 순차적인것만 알면 계산은 컴터가해주니까 문자로쓰면됨
		//'A'~'z'까지 하면 되는거 아니냐? no 아스키코드표보면 그 중간에는 특수문자가 껴있음
		
		/* 
		 10. 삼항연산자
		 	- 세 개의 피연산자를 필요로 하기 때문에 삼항연산자로 이름 지어진다.
		 	- 기본구조
		 		(조건식) ? 식1(true일때 수행) : 식1(false일때 수행)
		 		
		 */
		
		int so = -10;
		int absX = x >=0? x : -x; // 절대값구하는..
		//1.경우의 수가 두가지일때 사용한다.
		//2.true일때와 false일때의 타입은 일치해야함 (결과값은 하나에 담기때문에 타입도 하나)
		
		char xx = 'a';
		String rr = 'A'<=xx && xx <='Z'? "대문자" : 'a'<=xx && xx<='z'? "소문자" : "영문자아님";
		System.out.println(rr);
		//경우의 수가 3개
		//경우의 수를 줄일 수 있다. 대/소/그외를 두개씩 쪼개야한다.
		
		/*
		 11. 대입연산자 ( =, op= )
		 	- 변수의 값 또는 수식의 연산결과를 저장하는데 사용한다.
		 	- 연산우선순위가 가장 낮다.
		 	
		 */
		
		int i = 10;
		//i1 에 20을 더한 값을 i1에 저장해 주세요
		i = i+20;
		System.out.println(i);
		//근데 i를 두번쓰는게 귀찮아짐
		i += 20;
		System.out.println(i);
		
		char c5 = 'A';
		//c5 = c5+2' // char와 int는 int로 바꿔지니까 char로 형변환 해줘야함
		c5 += 2;// 근데 이건 에러가 안남 >>> op=는 자신의 타입을 유지시켜준다.
		System.out.println(c5);
반응형

'basicJAVA > 2. 연산자' 카테고리의 다른 글

201012 Operation_04  (0) 2020.10.12
201008 Operation_03  (0) 2020.10.08
201008 Operation_02  (0) 2020.10.08
201007 Operation_01  (0) 2020.10.07