[JAVA 기초 이론] 함수
함수
public static output 함수명(input) {
실행 코드;
}
output | input |
없거나 한개만 가능 | 여러개 가능 |
pucblic: 공개범위
static 객체와 무관하게
void: 아무것도 없다 "無"
** run 버튼을 누르면 main함수가 실행
📌 함수 특징
- 함수끼리는 메모리 공간을 공유하지 않습니다.
변수명이 같아도 함수가 다르면 서로다른 변수 - 순서: 전위증감연산자 >> 함수호출 >> 후위증감연산자
- 함수를 호출할 때에는 값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