Language/JAVA

[JAVA 기초 이론] 함수

오류나면꽥꽥 2023. 5. 8. 17:34

함수

 

public static output 함수명(input) {
	실행 코드;
}

 

output input
없거나 한개만 가능 여러개 가능

 


pucblic: 공개범위
static 객체와 무관하게
void: 아무것도 없다 "無"

** run 버튼을 누르면 main함수가 실행

 

 

 

 

 

📌 함수 특징

 

  1. 함수끼리는 메모리 공간을 공유하지 않습니다.
    변수명이 같아도 함수가 다르면 서로다른 변수

  2. 순서: 전위증감연산자 >> 함수호출 >> 후위증감연산자

  3. 함수를 호출할 때에는 값value을 전달함
        변수, 주소를 전달 x
        call by value 값에 의한 호출

 

 

👀함수 유형 알아두기

 

✅ A유형) input x   output x

 

public static void hello() { // 함수명은 기능을 유추할 수 있게 만들어야한다.
    System.out.println("안녕하세요:)");
} // 함수를 정의(선언)했다.

 

 

 

ex)

1. test()라는 함수가 있음
2. 랜덤정수를 생성해내고 -> input x       output x
3. 1부터 랜덤수까지의 총합을 출력하는 기능을 가졌습니다.

public static void test() {
    Random rand=new Random(); // 랜덤수
    int num=rand.nextInt(11)+10; //10~20
    System.out.println("랜덤수: "+num);

    int sum=0; // 총합 초기화
    for(int i=1;i<=num;i++) { // 랜덤수까지의 합
        sum+=i;
    }
    System.out.println("총합: "+sum);		
}

public static void main(String[] args) {
    test();
}

 

 

 

 

 

 

✅ B유형) input o   output x

 

	public static void printStar(int num) {
		for(int i=0;i<num;i++) {
		System.out.println("★");
		}
	}

 

 

 

ex)

1. 점수를 알려주면, -> input o     output x
2. "ㅁㅁ점은 ㅁ등급입니다."라고 출력해주세요!~~ -> 기능
3. 80~100 A
    60~79 B
    0~59 C
4. printGrade()라는 함수를 선언(정의)해주세요!!!

	public static void printGrade(int score) {

		// 유효성 검사
		if(score<0 || 100<score) {
			System.out.println("유효하지 않습니다!");
			return; // 함수를 즉시 종료하겠습니다!
		}

		char grade='C';		
		if(80<=score) {
			grade='A';
		}else if(60<=score) {
			grade='B';
		}
		System.out.println(score+"점은 "+grade+"등급입니다.");
	}

	public static void main(String[] args) {

		printGrade(81);

	}

 

 

 

 

 

✅ C유형) input x   output o

 

	public static String funcC() {	
		System.out.println("funcC() 동작!");
		return "apple"; // 함수 즉시 종료됨		
	}

 

 

 

 

 

✅ D유형) input o   output o

 

	public static int abs(int num) {
		if(num<0) {
			num*=(-1);
		}
		return num;
	}

 

 

 

 

ex)

1. abs()라는 함수가 있습니다.
2. 정수를 넣으면 넣은 정수의 절대값을 반환해주는 기능을 수행합니다. -> input o       output o
3. 해당함수를 선언(정의)해주세요!

	public static int abs(int num) {
		if(num<0) {
			num*=(-1);
		}
		return num;
	}

 

 

 

 

 

ex)

1. test2()라는 함수가 있음
2. 정수를 입력받으면 -> input o
3. 1부터 정수까지 중에서 짝수가 몇개인지를 반환해주는 기능을 가졌습니다. -> output o

	public static int test2(int num) { // 숫자 반환, 정수 입력
		int cnt=0; // 짝수 개수 합 받을곳 초기화
		for(int i=1;i<=num;i++) {
			if(i%2==0) { // 짝수
				cnt++;
			}
		}
		return cnt; 
	}
		
		
	public static void main(String[] args) {
		test();
		System.out.println("짝수 몇개? "+test2(13));
	}
}

 

 

ex)

1. test3()라는 함수가 있음 
2. 정수를 입력받으면 -> input o
3. 입력받은 정수가 10보다 크면 "apple",
                               10이하면 "banana"반환하는 기능을 가졌습니다. -> output o