for문의 실행순서
1. 초기식
2. 조건식
3. 실행
4. 증감식
5. 조건식
6. 실행
int cnt= 0;
for ( ; cnt < 10; ){
System.out.println(cnt);
cnt++;
}
이런 형식으로도 선언을 미리하고 조건도 블럭안에 두어서 사용할 수 있다.
for 위에 int cnt하게되면 cnt를 for문 밖에서도 쓸 수있는것이장점.
for(int i = 0; i < a.length ; i++) 형식으로 사용하면 매번 a.length를 계산해야 되므로 프로세스가 더 느려진다. 메모리를 더 잡더라도 int temp = a.length 한 다음에 for(int i = 0; i < temp; i++) 형식으로 하는게 속도면에서 좋은 코드가 된다.
반복문 안에서 연산을 수행하는것은 주의를 해야된다(없도록하는게 좋다. 자바에선 배열 length가 변하지 않기 때문).
5만번이면 시간이 많이 달라지게 된다.
향상된 for반복문(java 1.5이상부터 지원)
for(변수타입 변수이름:배열이름) 반복수행
-변수타입 : 배열항목과 동일한 타입
-변수이름:프로그래머가 나름대로 정할 수 있음.
예) for (int num : arr) System.out.println(num);
arr의 길이만큼 자동으로 반복함.
단점 : 낮은 버젼에서는 컴파일이 안되서 하위버전과 호환성이 떨어진다.
break문 : while,do,for,switch문 안에서 빠져나가는 기능, 가장 가까운 반복문을 빠져나간다. if문 안에서 break를 사용해도 if를빠져나가는게 아니고 가까운 while,do,for,switch문을 빠져나간다.
loop: <- for문에 붙여진 라벨, lable break는 절대 쓰지말것. goto문 처럼 흐름에 안좋은 코드이다. 100page참고
for문 안에서의 continue : continue아래있는 for문 블럭을 실행하지않고 다음번 for문을 실행함. 101page참고
continue는 brake; 처럼 반복문 안에서만 사용가능(for,while,switch,do)
method는 함수처럼 return값이 있고 파라미터를 받는다.
method는 접근제한자(지정자)를 받는다. 종류 : public, protected, deafult, private, static
method 에서 반환형을 return 값을 준다.없으면 void 값을 리턴한다. 반환형은 출력데이터가 된다.
형식 : [접근제한자] [static] 반환형 메소드이름([파라미터리스트]) { return 리턴값; } // [ ] 안은 생략가능하다는 의미
method에서 파라미터리스트에는 변수타입 변수이름, .... , ....등 여러개가 들어갈 수 있다. 입력데이터가 된다.
method의 호출은 stack영역에서 이뤄진다.(stack:LIFO형식)
a('a',100); 처럼 함수를 만들어서 값을 넘겨주는데 넘겨주는쪽을 아규먼트Argument라고 한다.
static void a(char ch, int i){ } 처럼 값을 받는 쪽에선 파라미터Parameter라고 한다.
Argument랑 Parameter랑 동일한 말로 쓰기도 한다.
숫자 파라미터(parameter)를 넘겨줄 때 int형으로 넘겨주는데 그 이유는 가장 빠르기 때문이다. 32bit pc가 이유.. int형이 32비트 기본형이다.
return할 때 기본형은 리턴형 지정하는 선언부분 type과 return타입이 맞아야된다. 참조형은 다르다.
if와 switch는 switch가 빠르다.
main메소드의 파라미터, argument String사용하는 방법 110page참조
main은 반드시 String으로 받아야된다. int형으로 받을 수 없게 되어있다.
10.0 / 0.0 계산하면 양의 방향으로 무한대가 나온다. ( +Infinity 값)
cmd에서 입력할때 * 는 입력이 안되므로 "*" 로 입력하면 *로 입력된다.
cmd에서 입력할때 안녕 홍 길동 의 홍길동 이름부분을 공백없이 묶어서 2글자로 하고싶으면 안녕 "홍 길동" 하면된다
cmd에서 입력할때 안녕 "홍 길동"으로 표현하고 싶으면 안녕 "\"홍 길동"\" 으로 입력하면된다. \" 가 따옴표 표시이다.
Exception(예외) Error(에러)
Error : 프로그래머가 프로그래밍 적으로 손 댈수 없는 상황.
Exception : 프로그래머가 오류를 제어할 수 있는 상황, 프로그래머가 처리해 줘야 될 오류들.
우주에 있는 먼지 하나라도 오류가 날 가능성이 있으면 예외처리(exception)을해주는 것이 좋다.
RuntimeException : 프로그램을 실행하다가 발생하는 예외
Compile Error : 코드를 잘못짜서 실행을 할 수 없는 상황
Out Of Memory : 메모리가 부족함. Error의 종류임.
Exception을 잘 제어할 수록 프로그램을 견고하게 만들게 된다.
Exception의 최상위 클래스에는 Throwable 클래스가 있다.
JavaDoc에서 최상위클래스 Throwable을 검색하면 Error과 Exception을 확인할 수 있다.
try , catch, finally 를 이용하여 exception을 처리해 줄 수 있다.
try{예외 발생 가능한 코드}
catch(예외타입 변수명){예외 처리 코드}// catch는 여러개를 만들 수 있다.
finally{예외가 생기거나 말거나 반드시수행해야 될 실행 코드들}
예)DB를 사용할때 열면 반드시 닫아줘야되는데 finally에 닫는 코드를 넣어준다.
catch를 사용하여 예외가 발생되었을 때 처리하는 부분을 정의해준다. 반드시 쓸것.
e.printStackTrace(); 하면 오류메세지를 출력한다.
System.out.println(e.getMessage()); 하면 오류나는 스택의 자리를 숫자로 알려준다.
'JAVA 공부' 카테고리의 다른 글
자바 기초 : 문자와 문자열 (0) | 2020.04.22 |
---|---|
자바에서 메소드(Method)와 함수(function)의 차이 (0) | 2020.04.22 |
자바 기초2 (0) | 2020.04.22 |
자바 기초 1 (0) | 2020.04.22 |
System.out.println (0) | 2020.04.14 |
댓글