티스토리 뷰
-------변수와 계산---------
변수 = 값(Data)을 저장 할 수 있는 메모리 공간
상수 = 변하지 않는 값. 추후 변경불가능함. 관례는 ㄷㅐ문자이고 단어구분은 언더바(_). 구현방법 : final 상수타입 상수명 => ex) final int number
기본형 데이터타입 : 논리,문자,정수,실수형 리터럴(값자체를 일컫음)
기본형 형변환 : 묵시적 형변환(작->큰타입)으로. / 명시적 형변환(큰->작 일땐 (타입) 선언을 해줘 형변환이 가능)
연산자 : 부호, 산술, 증감, 비교, 대입(단순,복합), 논리 등
(단항/이항/삼항)
우선순위
최우선연산자 ( ., [], () )
단항연산자 ( ++,--,!,~,+/- : 부정, bit변환>부호>증감)
산술연산자 ( *,/,%,+,-,shift) < 시프트연산자 ( >>,<<,>>> ) >
비교연산자 ( >,<,>=,<=,==,!= )
비트연산자 ( &,|,,~ )
논리연산자 (&& , || , !)
삼항연산자 (조건식) ? :
대입연산자 =,*=,/=,%=,+=,-=
-------- 제어문 --------
if문 =>
논리연산자 => 논리연산자는 논리곱(&&,&) 논리합(||,|), 배타적 논리합 () 논리부정(!) 연산을 수행한다. 논리 연산자의 피연산자는 블린 타입만 사용할 수 있다. 결과는 불린값이다.
삼항연산자 = > 조건식 ? 피연산자1 : 피연산자2
- 조건식의 연산결과가 true 이면, 결과는 피연산자 1이고, 조건식의 연산결과가 false 이면 결과는 피연산자2
switch =>
switch(변수){
case 값1 :
실행문;
break;
case 값2 :
실행문;
break;
default;
}
반복문 =>
while문, do-while문, for문
- while문의 경우 조건이 만족하지 않는다면 한번도 반복하지 않을 수 있다.하지만, do while문의 경우는 무조건 한번은 실행되는 반복문이다.
do{
실행문;
}while(조건문);
for반복문은 변수초기화, 조건식, 증감식이 한줄에 모두 있다.
for(초기화식; 조건식; 증감식){
실행문;
실행문;
}
continue 현재실행문 끝내고 다음 실행
break for문끝낸다
-------- 배열 --------
참조형 타입. 기본데이터 타입X.
1차원 배열
배열은 같은 데이터 타입을 가진 연속된 메모리 공간으로 이루어진 자료구조이다.
같은 데이터 타입을 가진 여러개의 변수가 필요할 때 사용
int[] array1 = new int[4];
array1[0] = 1;
array1[1] = 2;
array1[2] = 3;
array1[3] = 4;
- 선언과 동시에 초기화하는 방법
int[] array2 = new int[]{1,2,3,4};
or
int[] array2 = {1,2,3,4};
배열의 길이?
=> 변수명.length
cf)변수의 scope
선언된 해당 블록 내에서만 사용가능
배열의 모습을 보고싶다면
Arrays.toString(배열명) 으로 해야한다.
배열명을 그냥 출력시 그 해당된 주소값이 출력되므로.
2차원배열
2차원 배열이란 배열의 배열이다.
int[][] array4 = new int[3][4];
2차원 배열에 값 저장
array4[1] = 10 <==== 오류. why? array4[1] 은 또 다른 1차원 배열을 가리킬 수 있는 참조형 변수이기 때문에 값을 담을수는 없다.
array4[0][0] = 10; 이런식으로 값을 저장하자.
가변크기의 2차원 배열을 생성도 가능함.
int[][] array5 = new int[3][];
이렇게하면, array5[0][0] = 10은 오류난다. 반드시 배열 만들어줘야한다.
해당 배열에 값을 저장시,
array5[0] = new int[1]; //정수를 하나 담을 수 있는 배열을 생성해서 array5 의 0 번째 인덱스가 참조한다.
array5[1] = new int[2]; //정수를 두개 담을 수 있는 배열을 생성해서 array5 의 1 번째 인덱스가 참조한다.
array5[2] = new int[3]; //정수를 세개 담을 수 있는 배열을 생성해서 array5 의 2 번째 인덱스가 참조한다.
가변크기의 2차원 배열을 선언과 동시에 초기화하는 ㅂㅏㅇ법.
int[][] array6 = {{1}, {2,3}, {4,5,6}};
for each
자바 1.5 버전부터 추가된 foreach 구문(인텔리제이에서 iter치면 자동생성)
for (타입 값을받을변수명 : 출력하고픈자료구조변수명) {실행문}
int[] iarr = {10,20,30,40,50};
for(int value:iarr){
System.out.println(value);
}