• Home
  • About
    • Yerim Oh photo

      Yerim Oh

      Happy and worthwhile day by day :)

    • Learn More
    • Email
    • LinkedIn
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects

[07] Java_base

06 Jul 2020

Reading time ~2 minutes

Table of Contents
  • 목차
  • 함수
    • 사용자 정의 함수
      • 쓰는 이유
      • return의 쓰임새
    • 함수 내에서 입력 변수의 값 변경
      • 주소값 전달
      • 주소값 반환
  • 지역변수 사용 범위

목차

  • 함수
    • 사용자 정의 함수
      • 쓰는 이유
      • return의 쓰임새
    • 함수 내에서 입력 변수의 값 변경
      • 주소값 전달
      • 주소값 반환
  • 지역변수 사용 범위

함수

의의: 입력한 데이터를 받아 일련의 과정을 거쳐 결과를 반환하는 과정

image


사용자 정의 함수

Main함수 뿐 아니라 사용자가 직접 정의하여 함수를 구성

함수 이름: 변수와 마찬가지로 임의로 정할 수 있음

내부 연산: 함수의 구성 목적에 맞는 코딩을 직접 작성

image

각 괄호 안에 있는 것: 함수 본문, 함수 결과 반환

쓰는 이유

1) 반복적인 프로그래밍을 피할 수 있다.
-> 자주 사용되는 구문을 함수로 묶어 호출만 하면 되도록 프로그래밍한다.

2) 코드의 가독성이 높아진다.
-> 함수 이름을 명확하게 만들고 그 안에 코딩을 할 경우 프로그래밍의 가독성이 대폭 높아진다.

3) 유지 보수가 편하다.
-> 자주 사용되는 구문이 문제가 있을 경우 함수 내 한번만 수정하면 된다

return의 쓰임새

1) 함수에서 결과 값을 함수를 호출했던 코드로 돌려보내는 역할

2) 함수를 종료하는 역할 (return 구문을 만나면 그 즉시 함수를 종료할 수 있다)


함수 내에서 입력 변수의 값 변경

[PROBLEM]
[Q] a,b의 값이 변경이 될까?

public static void main(String[] args) {
  int a = 1;
  int b = 2;
  swap(a,b);
  System.out.println(a + “,” + b);
}

public static void swap(int a, int b)
{
  int tmp = a;
  a = b; 
  b = tmp;
}

[A] return 값이 없어서 swap 적용 X
(그럼 a,b값을 return해볼까?) 자바는 return 하나 밖에 안됌ㅠㅠ image

[SOLUTION]

주소값 전달

공용공간을 던지자

public static void main(String[] args) {
  int a = 1,b = 2;

  int [] c = {a,b};
  swap(c);
  System.out.println(c[0] + "," + c[1]);
}

public static void swap(int []a)
{
  int tmp = a[0];
  a[0] = a[1];
  a[1] = tmp;
}

image

주소값 반환

공용공간을 함수에서 만들자

public static void main(String[] args) {

  int a = 1; int b = 2;
  int [] swapped = swap(a,b);

  System.out.println(swapped[0] + ", " + swapped[1]);
}

public static int[] swap(int a, int b)
{
  int [] c = {a,b};

  int temp = c[0];
  c[0] = c[1];
  c[1] = temp;

  return c;
}

image


지역변수 사용 범위

  • 지역변수: 함수 안에서 정의된 함수
    지역변수는 그 함수 안에서만 사용 된다

  • 전역변수: 함수 밖 전체에서 정의 된 함수

 //  전역 변수
 int a = 0 ;
public static void swap()
{
 // 지역변수
 int a = o ; 
}

[Q]

  • 만약에 다음과 같이 i를 재활용하면?
    ```java
    for(int i = 10;i>=1;i–) { System.out.println(i); }

System.out.println(i); ```

(A)
에러가 난다(지역변수는 그 안에서만 할당)



BasicJava Share Tweet +1