반응형
public class FunctionTest {//0928-1
public static void main(String[] args) {
Func f = new Func(); //참조 변수 선언 생성;
// f.add(); //함수의 호출 : 함수의 실행문장을 실행하도록 함
// f.add2(10, 20);
// f.add2(100, 200);//매개변수의 타입과 형식에 맞춰 순서대로 대입
// System.out.println(f.add3(5, 8));
// //보통 결과 값을 변수에 담아 사용
// int sum = f.add3(15, 20); //return 결과 값을 가짐
// System.out.println(sum);
//
// double div = f.div(50.5, 5.6);
// System.out.println(div);
// System.out.println(String.format("%.8f", div));
//
// int mul = f.mul(30, 6);
// System.out.println(mul);
//
// int sub = f.sub(6, 2);
// System.out.println(sub);
//==========================================================return 값이 없으니 변수에 넣을 필요 없다
// f.test(10,20);
// f.test(20, 10);
int result = f.test2(10, 20);
System.out.println(result);
int result2 = f.test2(20, 10);
System.out.println(result2);
f.call1(); //===============================함수간 호출
}
}
public class Func { //0928-1 메소드(함수) : 재사용(필요시 언제든지 여러번 호출하여 사용 할 수있다.
//메소드(함수) : 객체의 기능을 구현
//형식:
//리턴타입 메소드명([매개변수1, 매개변수2,......]){ //[]부분은 필요하지 않으면 생략가능
// 실행문장
// [return 값]
//}
//사칙연산 수행 계산기
//리턴타입 : void, 기본자료형, 참조형
//메소드명 : 낙타표기법
//매개변수 : int x, double d(기본형), Tv t(참조형)
//return: 리턴타입이 void가 아닌경우에 사용
void add() { //메소드의 선언부(시그니쳐) //void경우 return값 x
System.out.println(2+3);//메소드의 구현부
}
void add2(int x,int y) { //매개변수 : 함수가 실행되는 시점에 값을 전달
System.out.println(x + y);
}
//리턴값이 있는 경우 return 값의 타입과 동일하게 정의 해야 한다.
int add3(int x, int y) {
int sum = x+y; //특정 블록 범위 안의 변수 : 지역변수. 따라서 다른메소드에서 같은 이름을 써도 된다.
return sum; //return 뒤에 돌려받고싶은 값을 기재
}
int sub(int x, int y) {
int sub = x-y;
return sub;
}
int mul(int x, int y) {
int mul =x*y;
return mul;
}
double div(double x, double y) {
double div = x/y;
return div;
}
//===========================================================void 함수에서의 return은 종료
void test(int x, int y) {
if(x < y) {
System.out.println("함수의 종료");
return; //여기서 return은 함수의 즉시 종료를 의미. (return 값이 따로 없으니 void 함수에서도 가능.)
}
int result = x + y;
System.out.println(result);
}
// 오류발생 : int 형이지만 조건문 안에 있기때문에 실행이 안될 경우가 발생해 else구문까지 작성해야함.
// int test2(int x, int y) {
// if(x>y) {
// return x;
// }
// }
// return 값이 많으면 안좋아
// int test2(int x, int y) {
// if(x>y) {
// return x;
// }else {
// return y;
// }
//}
int test2(int x, int y) {
int result;
if(x > y) {
result = x;
}else {
result = y;
}return result;
}
//=================================함수간 호출
void call1() {
System.out.println("Call1");
call2();
}
void call2() {
System.out.println("Call2");
call3();
}
void call3() {
System.out.println("Call3");
}
}
반응형
'java' 카테고리의 다른 글
0928_리턴타입을 참조형으로 갖는 메소드 (0) | 2022.09.28 |
---|---|
0928_참조형 변수 (클래스 타입), 기본형 변수 (0) | 2022.09.28 |
0927_클래스, 변수 (0) | 2022.09.27 |
0927_이중배열(빙고게임) (0) | 2022.09.27 |
0926_이중배열 (0) | 2022.09.26 |