4일차(배정연산자,캐스트연산자,제어문개요)
캐스트연산자=> ( )
자동형변환
1.데이터를 저장->자동으로 형이 변환->저장
ex) byte b=23;
2.계산하면 작은데이터->큰쪽 데이터
ex) 2(int)+3.4(double)=2.0+3.4=5.4
===========================
명시적인 형변환(=강제형변환)
byte s2=12; short s3=45;
//int result=s2+s3; 기본
short result=(short)(s2+s3);//수식은 소괄호
System.out.println("result="+result);
p95 비트연산자,쉬프트연산자
논리연산자->&,|,^
논리적인 데이터 & 논리적인 데이터
(2>3) (5<7)
비트연산자->정수값->2진수로 변환->계산
&,|,^,~ =>이진화된 데이터 & 이진화된 데이터
14 & 9
===========================
=>&(and)
|(or)
^(xor)
~(not)
ex) 14 & 9==>2진수
byte b=14,c=9
양수->1,2,4,8,16,,,
1->true, 0->false
00001110=>14
00001001==>9 &
==============
00001000==>10진수로 변환->8
=====================
| ->or ->(둘중에 하나가 참이면 ->참)
00001110=>14
00001001==>9 |
==============
00001111=>1+2+4+8=15
^->xor연산자->1 1, 0 0->0 ,1,0,0,1->1
00001110=>14
00001001==>9 ^
==============
00000111->1+2+4=7
===============
~ ->not===>1->0 0->1로 변환
===============
~14
00001110=>14
==========
11110001->-?==>보수
===============
10-3=7+3
================
=>양수->음수로 변환
1)reverse->1->0,0->1
2)+1
==================
ex)byte a=2;
00000010->2=>-2
=========
11111101
+ 1
==================
11111110===>-2
===============
음수->양수로 변환
1)-1
2)reverse->1->0,0->1
============
11111110-->-2
- 1
============
11111101
===========
00000010==>2
======================
BitTest.java
~14 =>00001110->14
11110001->-?=>음수->양수
- 1
=========
11110000
=======
00001111->1+2+4+8=>15=>-15
============================
비트연산자->비트를 오른쪽,왼쪽으로 이동시키는 연산자
shift연산자
>>>=>데이터전송과 연관(데이터입출력)
============================
1) 피연산자 >> n(이동시키는 비트수)
-> 14 >> 1->7, 14 >> 2=>3
00001110
0000111=>왼쪽에 공백->양수->0을채움
음수->1을채움
00000111->1+2+4->7
=======================
-14 >> 1
공식) 14(x) >> 1(n)=>14(x)/2의n=7
-14(x) >> 1(n)=>-14/2=>-7
=======================
14 << 1(n)->왼쪽으로 비트수를 이동
00001110
0001110 ====>오른쪽공백->0을 채움
14(x) << 1(n)->x*2의 n->14*2=28
===========================
00011100=>4+8+16=28
-14(x) << 1=>-14*2=-28
-8 >> 1=>-8/2=-4
-8 >> 2=>-8/4=-2
===========================
>>>=> >>와 기능이 거의 유사
->왼쪽에 공백=>양수,음수 상관없이 무조건
0을 채운다
->데이터를 전송할때 내부적으로 >>>
을 이용 ->양수로 만들어서 전달
byte->-128~127=>0~255
===========================
복합대입연산자=>배정연산자=>
int num=10;
num=num+5;//=>num+=5; //권장
===========>실행속도가 더 빠르다
num=num*10;//->num*=10;
num=num-10;//->num-=10;
num=num/10;//=>num/=10;
System.out.println("num="+num);
p79
e+=2.1;//e=e+2.1;
e*=2;//e=e*2;
n*=2.2=>n=n*2.2;
==================
주의)==>a++,++a
=>a=a+1;//a+=1; a++
a--=>a=a-1; //a-=1;
=====================
netbeans 개발툴
==========
제어문=>실행흐름의 컨트롤
==================
자바의 명령어->순차문->코딩순서대로 실행이 되는
문장.
제어문->특별한 조건에 따라서 실행
될수도 실행이 되지않을
수도 있는 문장
주석문-->컴파일러가 번역하지 않는
문장
=============================
제어문 종류
1.p110~117->if문,삼항연산자->조건문
2.switch문->선택문->JDK버전에서 추가된 문법
3.p124~ 반복문(for,while,do~while)
-------------------------------------------------
조건문->if문->특정조건에 따라서 참,거짓(둘중의
하나값을체크할때)
변수,수식,true
형식1) if(조건식)==>p111
문장1;
형식2) if(조건식)
문장1;
else
문장2;
IFTest2.java
======================
형식3)if(조건식) { //if문내부에 또 다른 if문
if조건식--->참인경우
}else{
if조건식--->거짓인경우
}
======================
형식3)=>if(조건식) {
문장1;
}else if(조건식2){
문장2;
}else if(조건식3){
문장3;
}
...
else{
}
삼항연산자->IFTest3.java
=>if문 대신사용하는 연산자
형식)변수명=(조건식)? 참인문장:거짓인문장
int num1=50,num2=100;
=================
50 100 50 100
=>big=(num1>num2)?num1:num2;
50 100 50 -100 100-50
diff=(num1>num2)?(num1-num2):(num2-num1)
==>제어문->조건문