티스토리 뷰

java 1.6(java6)에서는 switch() case의 괄호 안의 대상이 숫자만 허용되었으나
java 1.8(java8)에서는 비교대상에 string값도 허용되었다.


<switch case문>
- break;문을 사용하지 않은  연속적인 case콜론(:)형식으로  case를 축약하여 연속으로 사용가능하다.

아래 코드를 실행해보면



for(int i ; i < 6; i++){

i = 0일 경우: case 1 ~ case6 까지 내려왔지만 어느case에도 속하지 않으므로 default
i = 1일 경우 : case 1에 속하므로 값 출력 & break가 없으므로 다음 case문으로 내려가서 ~ case 6까지 내려왔다가 break문 만나서 끝.
i = 2일 경우 : case 1은 지나가고
        case 2에 속하므로 값 출력 & break가 없으므로 다음 case문으로 내려가서 ~ case 6까지 내려왔다가 break문 만나서 끝.
i = 3일 경우 : case 1 ~ case6 까지 내려왔지만 어느case에도 속하지 않으므로 default
i = 4일 경우 : case 1 지나가고
         case 2 지나가고
         case 4 or case6에 속하므로 값 출력 & break문 있으므로 끝.
i = 5일 경우 : case 1 ~ case6 까지 내려왔지만 어느case에도 속하지 않으므로 default
}

**************결론 switch-case문은 break문을 만날때까지 위에서부터 아래까지 진행된다.따라서 break문이 없는 case의 경우 멈추지 않고 다음 case문으로 넘어간다. break문을 만나면 switch문 밖으로 나간다. ******************


<for문>


List<>  list     =     ArrayList<>
인터페이스           implements객체

관계상 함수를 만들ㄸㅐ 또는 객체 변수를 만들때 앞은 인터페이스, 뒤에는 implement클래스를 적는다.

function bbbbbb(ArrayList){} 처럼 implement객체 파라미터를 쓰면 반드시 ArrayList만 파라미터로 받을 수 있으므로 한정적이다. 따라서 function bbbbbb(List){}이렇게 인터페이스를 쓰는것이 바람직하다.



자바에서는 iterator for문을 제공해준다.
자바에서 공고한 방법. 데이터를 get하는 경우에 담는 변수의 형태에 상관 없이 iterator는 object로 받아 온다. 
List를  받아올때 어떤 list가 올지 모르기 때문에 받는 아이를 iterator로 사용해야한다.
iterator란 컬렉션안에 있는 리스트안의 객체가 메모리에 어디에 있는지, 어디까지 읽었는지 위치를 알려준다.

(+다음시간 맛보기)<ArrayList vs LinkedList>

ArrayList : list.get(i)해서 가져올 때 자료구조 형식상 빠르다

LinkedList : list.get(i)해서 가져올 때 자료구조 형식상 느리다.

'Java' 카테고리의 다른 글

메소드와 메모리구조  (0) 2018.11.20
Array와 List  (0) 2018.11.19
바이트, 비트 연산(쉬프트 연산, 2의 보수 처리 등)  (0) 2018.11.19
객체, Class, Instance  (0) 2018.11.19
변수의 두 종류 Primitive변수와 Object변수  (0) 2018.11.19