반복문 : For-Each
for(변수선언:배열이름){
반복할 코드
}
주석 친 코드와 같은효과.
소괄호에 지정한 배열에 있는 모든 값을 한개 한개 뽑아다가 변수에 넣어가면서 중괄호 코드를 실행시켜주는 반복문
★메소드
- 여러 코드를 한대 묶음화를 해 놓을 수가 있음.
- 멤버 함수.
- 데이터와 멤버 변수에 대한 접근 권한
메소드를 묶음화한 코드를 언제든지 실행시킬 수 있음.
public calss test{
public static void korea(){
} korea-메소드 이름
프로그램을 실행하는 것은 main메소드를 실행하는거다.
프로그램에서 반복적으로 실행하는 로직이 있을 경우에 그 코드를 메소드로 묶음화를 해놓고
필요할 때 마다 호출해서 사용.
나중에 코드를 수정할 일이 발생했을때 메소드를 정의한 부분만
수정하면 메소드를 가져다가 호출하는 모든 부분이 수정된 효과가 나오게 됨 해서 유지보수성이 향상
메소드를 사용함으로써 코드의 재사용성이 높아진다.
메소드를 사용함으로써 소스 코드의 분량이 줄어든다.
System.out.println(); <- 메소드
★라이브러리: 여러 메소드를 묶음화한 코드.
라이브러리 종류
- 표준 라이브러리 : 자바에서 기본적으로 제공
- 외부 라이브러리 : 다른 개발자가 만들어서 제공
- 사용자 정의 메소드 : 내가 직접 만든 메소드 (korea)
System.out.println(a);
- test 메소드를 호출할때 넘어오는 값을 변수 a에 값으로 초기화
test(); //error
메소드를 정의할때 넘어오는 값을 변수에 넣겠다고 정의하면 반드시 그 메소드를 호출할때
값을 넘겨야만 호출가능.
test("동동"); <- 에러 안난다.
test 메소드를 호출할때 동동이라는 문자열을 넘겨서 호출하겠다.
메소드를 호출할때 넘겨주는 값을 매개변수라 한다.
메소드가 매개변수를 받을 자료형을 자바에서 제공하는 모든 자료형을 전부 사용할 수 있음.
메소드가 매개변수를 안받아도되고 받았을때는 1개를 받건 100개를 받건 개수에 제한이 없음
sum(10,20,30); //error
메소드를 정의할때 2개를 받으라고 했으면 호출할때 반드시2개를 넘겨야함 매개변수가 모자르거나
많아지면 에러발생
메소드를 정의할때 지정한 자료형과 호출할때 넘기는 값의 자료형이 바뀌면 에러발생
메소드가 매개변수를 넘겨 받아서 메소드 중괄호 안에 코드를 수행하게 구현할수 있음.
넘겨 받는 이유는 넘어온 값에 따라 결과가 달려져야 하는 로직을 구현해야 하기 때문에.
return문은 우항에 지정한 값을 메소드를 호출했던 곳으로 넘겨 주라는 것
return num1+num2; <-변수 num1의 값과 num2의 값을 더하기를 한 값을 메소드를 호출했던 곳으로 넘겨주겠다.
리턴하는 값의 자료형을 리턴타입이라 불림
리턴 타입이 void인 것은 리턴을 안함.
리턴을 하기 위해서는 리턴하는 겂의 자료형이 무엇인지 지정.
리턴타입으로 지정한 자료형과 실제로 리턴하라고 지정한 값의 자료형이 불일치하다면 에러가 발생
리턴 타입으로 지정한 자료형과 리턴 값을 받을 변수의 자료형과 일치
System.out.println("hi"); //error
return문은 우항의 값을 메소드 호출했던 곳으로 전달함과 동시에 메소드를 종료하라
return이 있는데 밑에 뭘실행을 하느냐라는 말.
리턴문이 작성되면 그아래에 어떤 코드가 있든 작성될수 없다.
리턴 타입은 자바에서 제공하는 그어떤 자료형으로 사용가능
리턴타입이 void이때 return문을 사용하는것은 메소드를 종료시키라
입력을해서 양수 음수를 표현하는것을 만들어 보았다.
korea(a); <- 이코드가 없으면 결과값이 안나오게 된다.
만약 return문을 조건에 만족했을때 가동하게 구현했을 때는 return문 아래에 다른 코드를 작성해서 실행하라고
구현할수 있음.
왜냐면 조건에 만족하지 않았을때는 return문을 실행하지 않게 되기 때문에 조건에 만족하지 않으면
다른 코드를 실행할 수 있게 됨. 해서 조건에 만족했을 때만 리턴을 시키면 다른 코드를 리턴문 아래에 작성가능
결과 값은 둘리 또치 이렇게 나온다.
리턴을 시킬때는 하나의 값만 리턴할수 있음
메소드가 배열을 리턴할수 있고 그렇게 배열을 메소드가 리턴한다면 리턴 값을 배열로 받아야함
메소드==함수
c 계열 언어에서는 함수라고 많이 표현// java에는 메소드라 표현//
조건이 참이여서 결과 값은 10이 나온다.
삼항 연산자: 조건식이 참일 경우에 : 좌항의 값을 리턴하고 조건식이 거짓일 경우에는 : 우항의 값을 리턴
★문제
1. 3개의 정수를 입력받아 가장큰수와 가장작은수 출력
클래스 메소드 를 MaxNum과MinNum 두개를 만든다. 입력값3개를 만들어준다.
2. 섭씨 온도를 입력하면 화씨 온도로, 화씨 온도를 입력하면 섭씨 온도로
섭씨=(화씨-32)/1.8 화씨=1.8*섭씨+32
클래스 메소드를 2개 공식을 만들어준다. 입력받는 코드를 만들어주고 case로 선택사항을 만들어준다.
마지막 선택오류사항을 만들어준다.
3. 매개변수로 3을 전달하면 3의 계승의 값을 리턴(양수) 재귀함수
위 코드를 입력받는걸로 만들고싶어서 만들어 보았다.
코리아!!가 3번 출력된다.
매개변수 : 함수나 방정식을 일반적으로 나타내기 위하여 사용된 변수
재귀함수 : 메소드 안에서 자기 자신을 호출하는 형태
재귀함수는 반드시 탈출할수 있는 조건이 존재해야 한다. 그렇지 않다면 메소드가 메소드를 계속호출하다가 프로그램이 에러나서 중단됨.
수학적 알고리즘을 프로그램으로 구현할때 재귀함수의 형태로 구현해야 쉽게 구현할수 있는 알고리즘이 많음.
'프로그래밍 > JAVA' 카테고리의 다른 글
JAVA/ random,Array (0) | 2017.07.08 |
---|---|
JAVA/ Class (0) | 2017.07.05 |
JAVA/ 반복문(while,for) (0) | 2017.06.28 |
JAVA/ (비교,논리)연산자, 조건문 case (0) | 2017.06.24 |
JAVA/ 자료형,변수,입출력 (0) | 2017.06.18 |