1. μ μΈ μμΉμ λ°λ₯Έ λ³μμ μ’ λ₯
π‘λ³μμ μ’ λ₯λ₯Ό κ²°μ μ§λ μ€μν μμλ 'λ³μμ μ μΈλ μμΉ'μ΄λ―λ‘ λ³μκ° μ΄λ μμμ μ μΈλμλμ§λ₯Ό νμΈνλ κ²μ΄ μ€μ!!
λ³μμ μ’ λ₯λ 3κ°μ§μ΄λ€.
1. ν΄λμ€ λ³μ: λ©€λ² λ³μ μ€ staticμ΄ λΆμ λ³μ
2. μΈμ€ν΄μ€ λ³μ: λ©€λ² λ³μ μ€ staticμ΄ λΆμ§ μμ λ³μ
3. μ§μ λ³μ: λ©€λ² λ³μλ₯Ό μ μΈν λλ¨Έμ§ λ³μ
ivμ cvλ ν΄λμ€ μμμ μ μΈλμ΄ μμΌλ―λ‘ λ©€λ² λ³μμ΄κ³ μ΄ μ€ staticμ΄ λΆμ cvλ ν΄λμ€ λ³μ, λΆμ§ μμ ivλ μΈμ€ν΄μ€ λ³μμ΄λ€.
λ©μλμΈ method()μ λ΄λΆ, μ¦ 'λ©μλ μμ'μ μ μΈλ lvλ μ§μλ³μμ΄λ€.
λ³μμ μ’ λ₯μ νΉμ§
μΈμ€ν΄μ€ λ³μ (instance variable)
- ν΄λμ€ μμμ μ μΈλλ©°, ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ λ§λ€μ΄μ§λ€.
=> λ³μμ κ°μ μ½μ΄μ€κ±°λ μ μ₯νκΈ° μν΄μλ λ°λμ μΈμ€ν΄μ€ λ¨Όμ μμ±!
- μΈμ€ν΄μ€λ λ 립μ μΈ κ³΅κ°μ κ°μ§λ―λ‘ μλ‘ λ€λ₯Έ κ°μ κ°μ§ μ μλ€.
β μΈμ€ν΄μ€λ§λ€ κ³ μ ν μνλ₯Ό μ μ§ν΄μΌ νλ μμ±μ κ²½μ°, μΈμ€ν΄μ€ λ³μλ‘ μ μΈνλ€.
ν΄λμ€ λ³μ (class variable)
- μΈμ€ν΄μ€ λ³μ μμ staticμ λΆμ¬ μ¬μ©νλ€.
- λͺ¨λ μΈμ€ν΄μ€κ° 곡ν΅λ μ μ₯곡κ°(λ³μ)μ 곡μ νλ€.
- μΈμ€ν΄μ€ λ³μμ λ¬λ¦¬ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ°λ‘ μ¬μ©ν μ μλ€.
- 'ν΄λμ€μ΄λ¦.ν΄λμ€λ³μ'μ νμμΌλ‘ μ¬μ©νλ€.
- λ©λͺ¨λ¦¬μ λ‘λ©λ λ μμ±λμ΄ νλ‘κ·Έλ¨μ΄ μ’ λ£λ λκΉμ§ μ μ§λλ€.
- publicμ λΆμ΄λ©΄ κ°μ νλ‘κ·Έλ¨ λ΄μμ μ΄λμλ μ κ·Όν μ μλ 'μ μλ³μ(global variable)'μ μ±κ²©μ κ°λλ€.
β ν ν΄λμ€μ λͺ¨λ μΈμ€ν΄μ€λ€μ΄ 곡ν΅μ μΈ κ°μ μ μ§ν΄μΌ νλ μμ±μ κ²½μ°, ν΄λμ€ λ³μλ‘ μ μΈνλ€.
*μ°Έμ‘°λ³μμ μ μΈμ΄λ κ°μ²΄μ μμ±κ³Ό κ°μ΄ ν΄λμ€μ μ λ³΄κ° νμν λ, ν΄λμ€λ λ©λͺ¨λ¦¬μ λ‘λ©λλ€.
μ§μ λ³μ (local variable)
- λ©μλ λ΄μ μ μΈλμ΄ λ©μλ λ΄μμλ§ μ¬μ© κ°λ₯νκ³ , λ©μλκ° μ’ λ£λλ©΄ μλ©Έλλ€.
- forλ¬Έ λλ whileλ¬Έμ λΈλ‘ λ΄μ μ μΈλ μ§μλ³μλ μ§μλ³μκ° μ μΈλ λΈλ‘ {} λ΄μμλ§ μ¬μ© κ°λ₯νκ³ , λΈλ‘μ λ²μ΄λλ©΄ μλ©Έλλ€.
2. ν΄λμ€λ³μμ μΈμ€ν΄μ€ λ³μ
μΉ΄λ ν΄λμ€λ₯Ό μ μν΄ λ³΄μ.
ν΄λμ€μ μμ±μΌλ‘λ μλμ 4κ°μ§ μμκ° μλ€.
- 무λ¬
- μ«μ
- ν
- λμ΄
κ° CardμΈμ€ν΄μ€λ μμ λ§μ λ¬΄λ¬ (kind)μ μ«μ(number)λ₯Ό μ μ§νκ³ μμ΄μΌ νλ―λ‘ μΈμ€ν΄μ€ λ³μλ‘ μ μΈνμκ³ , κ° μΉ΄λμ ν(width)κ³Ό λμ΄(height)λ λͺ¨λ μΈμ€ν΄μ€ κ° κ³΅ν΅μ μΌλ‘ κ°μ κ°μ μ μ§ν΄μΌ νλ―λ‘ ν΄λμ€ λ³μλ‘ μ μΈνμλ€.
class Card {
// μΈμ€ν΄μ€ λ³μ
String kind;
int num;
// ν΄λμ€ λ³μ
static int width;
static int height;
}
μΉ΄λμ νμ΄λ λμ΄, μ¦ ν΄λμ€ λ³μμ κ°μ λ³κ²½νλ κ²½μ°, λͺ¨λ μΉ΄λμ width, heightκ°μ΄ λ³κ²½λλ€λ κ²μ λͺ μ¬νμ.
class CardTest {
public static void main(String[] args) {
System.out.println(Card.width);
System.out.println(Card.height);
}
}
ν΄λμ€ λ³μλ 'ν΄λμ€μ΄λ¦.ν΄λμ€λ³μ'μ ννλ‘ μ¬μ©νλ―λ‘ Card.width, Card.heightμ κ°μ΄ μ¬μ©νλ€.
μ 리
μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€κ° μμ±λ λλ§λ€ μμ±λλ―λ‘ μΈμ€ν΄μ€λ§λ€ κ°κΈ° λ€λ₯Έ κ°μ μ μ§ν μ μμ§λ§, ν΄λμ€ λ³μλ λͺ¨λ μΈμ€ν΄μ€κ° νλμ μ μ₯곡κ°μ 곡μ νλ―λ‘, νμ 곡ν΅λ κ°μ κ°λλ€.
3. λ©μλ
νΉμ μμ μ μννλ μΌλ ¨μ λ¬Έμ₯λ€μ νλλ‘ λ¬Άμ κ².
λ©μλλ₯Ό μ¬μ©νλ μ΄μ
1. λμ μ¬μ¬μ©μ±
νλ² λ§λ€μ΄ λμ λ©μλλ λͺ λ²μ΄κ³ νΈμΆν μ μμΌλ©°, λ€λ₯Έ νλ‘κ·Έλ¨μμλ μ¬μ©μ΄ κ°λ₯νλ€.
2. μ€λ³΅λ μ½λμ μ κ±°
λ°λ³΅λλ λ¬Έμ₯λ€μ λ¬Άμ΄μ νλμ λ©μλλ‘ μμ±ν΄ λμΌλ©΄, λ©μλλ₯Ό νΈμΆνλ ν λ¬Έμ₯μΌλ‘ λ체ν μ μλ€.
μ 체 μ½λμ κΈΈμ΄κ° μ§§μμ§κ³ , λ³κ²½μ¬νμ΄ λ°μνμ λ μμ ν΄μΌ ν μ½λμ μμ΄ μ€μ΄λ€μ΄ μ€λ₯κ° λ°μν κ°λ₯μ±λ ν¨κ» μ€μ΄λ λ€.
3. νλ‘κ·Έλ¨μ ꡬ쑰ν
ν° κ·λͺ¨μ νλ‘κ·Έλ¨μμλ λ¬Έμ₯λ€μ μμ λ¨μλ‘ λλ μ μ¬λ¬ κ°μ λ©μλμ λ΄μ νλ‘κ·Έλ¨μ ꡬ쑰λ₯Ό λ¨μνμν€λ κ²μ΄ νμμ μ΄λ€.
public static void main(String[] args) {
int[] numArr = new int[10];
initArr(numArr); // 1. λ°°μ΄μ μ΄κΈ°ν
printArr(numArr); // 2. λ°°μ΄μ μΆλ ₯
sortArr(numArr); // 3. λ°°μ΄μ μ λ ¬
printArr(numArr); // 4. λ°°μ΄μ μΆλ ₯
}
μ΄μ²λΌ mainλ©μλλ νλ‘κ·Έλ¨μ μ 체 νλ¦μ΄ νλμ λ€μ΄μ¬ μ λλ‘ λ¨μνκ² κ΅¬μ‘°ννλ κ²μ΄ μ’λ€.
μ²μμ νλ‘κ·Έλ¨μ μ€κ³ν λ λ΄μ©μ΄ μλ λ©μλλ₯Ό μμ λ¨μλ‘ λ§λ€μ΄ λκ³ , νλμ© μμ±ν΄ κ°λ κ²λ νλ‘κ·Έλ¨μ ꡬ쑰ννλ μ’μ λ°©λ²μ΄λ€.
4. λ©μλμ μ μΈκ³Ό ꡬν
λ©μλλ ν¬κ² λ λΆλΆ, μ μΈλΆμ ꡬνλΆλ‘ λλμ΄μ Έ μλ€.
λ°ννμ λ©μλμ΄λ¦ (νμ λ³μλͺ , νμ λ³μλͺ ,...)
{
// λ©μλ νΈμΆ μ μνλ μ½λ
}
int add(int a, int b) // μ μΈλΆ
{
return a + b; // ꡬνλΆ
}
λ©μλ μ μΈλΆ
- λ©μλ μ΄λ¦
- λ§€κ°λ³μ μ μΈ
- λ°ν νμ
π‘ λ©μλκ° μμ μ μννκΈ° μν΄ μ΄λ€ κ°λ€μ νμλ‘ νκ³ μμ μ κ²°κ³Όλ‘ μ΄λ€ νμ μ κ°μ λ°ννλμ§μ λν μ 보λ₯Ό μ 곡νλ€.
λ©μλμ μ μΈλΆλ₯Ό λ³κ²½νκ² λλ©΄, κ·Έ λ©μλκ° νΈμΆλλ λͺ¨λ κ³³μ κ°μ΄ λ³κ²½ν΄μΌ νλ―λ‘ νμ λ³κ²½μ¬νμ΄ λ°μνμ§ μλλ‘ μ μ€ν μμ±ν΄μΌ νλ€.
λ§€κ°λ³μ μ μΈ
λ§€κ°λ³μ
- λ©μλκ° μμ μ μννλλ° νμν κ°λ€(μ λ ₯)μ μ 곡λ°κΈ° μν κ²
- νμν κ°μ κ°μλ§νΌ λ³μλ₯Ό μ μΈνλ€.
- κ° λ³μ κ°μ ꡬλΆμ μΌν ', 'λ₯Ό μ¬μ©νλ€.
μ£Όμν μ
μΌλ°μ μΈ λ³μ μ μΈκ³Ό λ¬λ¦¬ λ λ³μμ νμ μ΄ κ°μλ λ³μμ νμ μ μλ΅ν μ μλ€.
int add(int a, int b) {} // OK
int add(int a, b) {} // ERROR!! λ§€κ°λ³μ bμ νμ
μ΄ μλ€.
μ μΈν μ μλ λ§€κ°λ³μμ κ°μλ κ±°μ μ νμ΄ μμ§λ§, λ§μΌ μ λ ₯ν΄μΌ ν κ°μ κ°μκ° λ§μ κ²½μ°μλ λ°°μ΄μ΄λ μ°Έμ‘°λ³μλ₯Ό μ¬μ©νλ€.
λ§μΌ, κ°μ μ ν μ λ ₯λ°μ νμκ° μλ€λ©΄ κ΄νΈ () μμ μ무κ²λ μ μ§ μλλ€.
* λ§€κ°λ³μλ λ©μλ λ΄μ μ μΈλ κ²μΌλ‘ κ°μ£Όλλ―λ‘ 'μ§μ λ³μ'μ΄λ€.
λ©μλμ μ΄λ¦
λ©μλμ μ΄λ¦λ μλ λΈλ‘κ·Έμ μ 리ν λ³μμ λͺ λͺ κ·μΉλλ‘ μμ±νλ©΄ λλ€.
2-1μ₯ λ³μ
1. λ³μλ? λ¨ νλμ κ°μ μ μ₯ν μ μλ λ©λͺ¨λ¦¬ κ³΅κ° 2. λ³μμ μ μΈκ³Ό μ΄κΈ°ν λ³μμ μ μΈ int age; // λ³μνμ λ³μμ΄λ¦ λ©λͺ¨λ¦¬μ λΉ κ³΅κ°μ ‘λ³μ νμ ’μ μλ§μ ν¬κΈ°μ μ μ₯ κ³΅κ° ν보 μ΄
hyeon-z.tistory.com
λ©μλλ νΉμ μμ μ μννλ―λ‘ λ©μλ μ΄λ¦μ 'add'μ²λΌ λμ¬μΈ κ²½μ°κ° λ§μΌλ©°, μ΄λ¦λ§μΌλ‘λ λ©μλμ κΈ°λ₯μ μ½κ² μ μ μλλ‘ ν¨μΆμ μ΄λ©΄μλ μλ―Έ μλ μ΄λ¦μΌλ‘ μ§μ΄μΌ νλ€.
λ°ν νμ
π‘λ©μλμ μμ μν κ²°κ³Ό(μΆλ ₯)μΈ 'λ°ν κ°'μ νμ
λ°νκ°μ΄ μλ κ²½μ°μλ λ°ννμ μΌλ‘ 'void'λ₯Ό μ λλ€.
* 'void'λ 'μ무κ²λ μμ'μ μλ―Ένλ€.
λ©μλμ ꡬνλΆ
π‘λ©μλμ μ μΈλΆ λ€μμ μ€λ κ΄νΈ{}λ‘ λ©μλλ₯Ό νΈμΆνμ λ μνλ λ¬Έμ₯λ€μ λ£λλ€.
return문
λ©μλμ λ°ννμ μ΄ 'void'κ° μλ κ²½μ°, ꡬνλΆ {} μμ 'return λ°νκ°;'μ΄ λ°λμ ν¬ν¨λμ΄ μμ΄μΌ νλ€.
μ΄ λ¬Έμ₯μ μμ μ μνν κ²°κ³ΌμΈ λ°νκ°μ νΈμΆν λ©μλλ‘ μ λ¬νλλ°, μ΄ κ°μ νμ μ λ°ν νμ κ³Ό μΌμΉνκ±°λ μ μ΄λ μλ νλ³νμ΄ κ°λ₯ν κ²μ΄μ΄μΌ νλ€.
μ¬λ¬ κ°μ λ³μλ₯Ό μ μΈν μ μλ λ§€κ°λ³μμ λ¬λ¦¬ returnλ¬Έμ λ¨ νλμ κ°λ§ λ°νν μ μλ€.
μ¦, λ©μλλ‘μ μ λ ₯(λ§€κ°λ³μ)μ μ¬λ¬ κ°μΌ μ μμ§λ§ μΆλ ₯(λ°νκ°)μ μ΅λ νλλ§ νμ©νλ€.
μ§μ λ³μ
π‘λ©μλ λ΄μ μ μΈλ λ³μ
λ©μλ λ΄μ μ μΈλ λ³μλ€μ κ·Έ λ©μλ λ΄μμλ§ μ¬μ©ν μ μμΌλ―λ‘ μλ‘ λ€λ₯Έ λ©μλλΌλ©΄ κ°μ μ΄λ¦μ λ³μλ₯Ό μ μΈν΄λ λλ€.
int add(int x, int y) {
int result = x + y;
return result;
}
int multiply(int x, int y) {
int result = x * y;
return result;
}
μμ μ μλ λ©μλ addμ muliplyμ κ°κΈ° μ μΈλ λ³μ x, y, resultλ μ΄λ¦λ§ κ°μ λΏ μλ‘ λ€λ₯Έ λ³μμ΄λ€.
5. λ©μλμ νΈμΆ
λ©μλμ΄λ¦(κ° 1, κ° 2,...)οΌ // λ©μλλ₯Ό νΈμΆνλ λ°©λ²
μΈμ(argument)μ λ§€κ°λ³μ(parameter)
μΈμ(μΈμ)
λ©μλλ₯Ό νΈμΆν λ κ΄νΈ() μμ μ§μ ν΄ μ€ κ°λ€
λ§€κ°λ³μ
λ©μλκ° μμ μ μννλλ° νμν κ°λ€(μ λ ₯), λ©μλ μ μΈλΆμμ μ¬μ©
μΈμμ κ°μμ μμλ νΈμΆλ λ©μλμ μ μΈλ λ§€κ°λ³μμ μΌμΉν΄μΌ νλ€.
μΈμλ λ©μλκ° νΈμΆλλ©΄μ λ§€κ°λ³μμ λμ λλ―λ‘, μΈμμ νμ μ λ§€κ°λ³μμ νμ κ³Ό μΌμΉνκ±°λ μλ νλ³νμ΄ κ°λ₯ν κ²μ΄μ΄μΌ νλ€.
μ½λλ₯Ό ν΅ν΄ μ΄ν΄λ³΄λ©΄ mainν¨μμμ add λ©μλλ₯Ό νΈμΆν λ κ΄νΈ () μμ λ£μ κ° 1, 2κ° μΈμμ΄κ³ add λ©μλλ₯Ό μ μΈν λ κ΄νΈ () μμ λ£μ κ° x, yκ° λ§€κ°λ³μμ΄λ€.
public static void main(String[] args) {
int result = add(1, 2); // μΈμ (1, 2)
}
static int add(int x, int y) { // λ§€κ° λ³μ (int x, int y)
return x + y;
}
λ©μλμ μ μΈλ λ§€κ°λ³μμ κ°μμ λ€λ₯Έ κ° λλ νμ μ΄ λ€λ₯Έ κ°μ κ΄νΈ()μ λ£μΌλ©΄ μ»΄νμΌλ¬κ° μλ¬λ₯Ό λ°μμν¨λ€.
int result1 = add(1); // ERROR. λ©μλμ μ μΈλ λ§€κ°λ³μμ κ°μκ° λ€λ¦
int result2 = add(1, 2, 3); // ERROR. λ©μλμ μ μΈλ λ§€κ°λ³μμ κ°μκ° λ€λ¦
int result3 = add(1.0); // ERROR. λ©μλμ μ μΈλ λ§€κ°λ³μμ νμ
μ΄ λ€λ¦
λ©μλμ μ€ννλ¦
κ°μ ν΄λμ€ λ΄μ λ©μλλΌλ¦¬λ μ°Έμ‘°λ³μλ₯Ό μ¬μ©νμ§ μκ³ λ μλ‘ νΈμΆμ΄ κ°λ₯νμ§λ§ staticλ©μλλ κ°μ ν΄λμ€ λ΄μ μΈμ€ν΄μ€ λ©μλλ₯Ό νΈμΆν μ μλ€.
class MyMath {
long add(long a, long b) {
return a + b;
}
long add2(long a, long b) {
return add(1, 2); // OK
}
static long add3(long a, long b) {
return add(1, 2); // ERROR
}
}
MyMathν΄λμ€μ 'add(long a, long b)'λ₯Ό νΈμΆνκΈ° μν΄μλ λ¨Όμ 'MyMath mm = new MyMath();'μ κ°μ΄ MyMathν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ€μ μ°Έμ‘°λ³μ mmμ ν΅ν΄μΌ νλ€.
1. mainλ©μλμμ addλ©μλλ₯Ό νΈμΆνλ€. νΈμΆ μ μ μ₯ν 1Lκ³Ό 2Lμ΄ λ©μλ addμ λ§€κ°λ³μ a, bμ κ°κ° 볡μ¬(λμ )λλ€.
2. λ©μλ addμ κ΄νΈ{} μμ μλ λ¬Έμ₯λ€μ΄ μμλλ‘ μνλλ€.
3. λ©μλ addμ λͺ¨λ λ¬Έμ₯μ΄ μ€νλκ±°λ returnλ¬Έμ λ§λλ©΄, νΈμΆν λ©μλ(main λ©μλ)λ‘ λλμμμ μ΄νμ λ¬Έμ₯λ€μ μ€ννλ€.
β λ©μλκ° μ€νλλ©΄ μ§κΈκΉμ§ μ€ν μ€μ΄λ λ©μλλ μ€νμ μ μ λ©μΆκ³ νΈμΆλ λ©μλμ λ¬Έμ₯λ€μ΄ μ€νλλ€.
long value = add(1L, 2L)
-> long value = 3L;
addλ©μλμ λ§€κ°λ³μ νμ μ΄ longμ΄λ―λ‘ μΈμλ‘ long λλ longμΌλ‘ μλ νλ³νμ΄ κ°λ₯ν κ°μ μ§μ ν΄μΌ νλ€.
λν λ©μλμ κ²°κ³Όλ₯Ό μ μ₯νκΈ° μν valueλ λ°νκ°κ³Ό κ°μ νμ μ΄κ±°λ λ°νκ°μ΄ μλ νλ³νλμ΄ μ μ₯λ μ μλ νμ μ΄μ΄μΌ νλ€.
βμλ addν¨μμ λ§€κ°λ³μμ μΈμλ‘ longνμ κ°μ λ£λλ€λ©΄ μ΄λ»κ² λ κΉ?
class MyMath {
double add(double a, double b) {
return a + b;
}
}
class MyMathTest {
public static void main(String[] args) {
MyMath mm = new MyMath();
double value = mm.add(1L, 2L);
System.out.println(value); // 3.0
}
}
μλ νλ³νμ λν΄ κΆκΈνλ©΄ μ°Έκ³ λ°λλ€.
2-5μ₯ ν λ³ν
1. ν λ³ν(μΊμ€ν , casting)μ΄λ? π‘ λ³μ λλ μμμ νμ μ λ€λ₯Έ νμ μΌλ‘ λ³ννλ κ² 2. ν λ³ν λ°©λ² π‘ (νμ ) νΌμ°μ°μ μ¬κΈ°μ μ¬μ©λλ κ΄νΈ()λ ‘μΊμ€νΈ μ°μ°μ’, ‘νλ³ν μ°μ°μ’λΌ
hyeon-z.tistory.com
νΈμΆ μμ μ λ ₯λ κ°μ λ©μλμ λ§€κ°λ³μμ λμ λλ κ°μ΄λ―λ‘, longνμ κ°μ doubleνμ λ³μμ μ μ₯νλ κ²κ³Ό κ°λ€.
'double a = 1L;'μ μννλ©΄ longν κ°μΈ 1Lμ doubleν κ°μΈ 1.0μΌλ‘ μλ νλ³ν(μμ νμ -> ν° νμ )λμ΄ addμ λ§€κ°λ³μ aμ μ μ₯λλ€.
λ°λΌμ addλ©μλμ λ κ°μ μ μ κ°(1L, 2L)μ μ λ ₯νμ¬ νΈμΆνμμμλ λΆκ΅¬νκ³ μ°μ°κ²°κ³Όκ° doubleνμ κ°μ΄ λλ€.
6. return문
π‘ νμ¬ μ€ν μ€μΈ λ©μλλ₯Ό μ’ λ£νκ³ νΈμΆν λ©μλλ‘ λλμκ°λ€.
μ§κΈκΉμ§λ λ°νκ°μ΄ μμ λλ§ returnλ¬Έμ μ¬μ©νμ§λ§, μλλ λ°νκ°μ μ 무μ κ΄κ³ μμ΄ λͺ¨λ λ©μλμλ μ μ΄λ νλμ returnλ¬Έμ΄ μμ΄μΌ νλ€.
β κ·Έλ λ€λ©΄ λ°ν νμ μ΄ 'void'μΈ κ²½μ°, returnλ¬Έμ΄ μμ΄λ λ¬Έμ κ° μμλ μ΄μ λ 무μμΌκΉ?
κ·Έ μ΄μ λ μ»΄νμΌλ¬κ° λ©μλμ λ§μ§λ§μ 'return;'μ μλμ μΌλ‘ μΆκ°ν΄ μ£ΌμκΈ° λλ¬Έμ΄λ€.
λ°ν κ°μ΄ μλ κ²½μ°λ λ°λμ returnλ¬Έμ΄ μμ΄μΌ νλ€.
int add(int a, int b) {
// ERROR
}
returnλ¬Έμ΄ μμΌλ©΄ μ»΄νμΌ μλ¬(error : missing return statement)κ° λ°μνλ€.
βifλ¬Έμ μ¬μ©νλ κ²½μ° ifλ¬Έ μμλ§ returnμ ν΄μ£Όλ©΄ λ¬Έμ κ° μμκΉ?
int max(int a, int b) {
if (a > b) {
return a;
}
// ERROR
}
returnλ¬Έμ΄ μ‘΄μ¬νμ§λ§ returnλ¬Έμ΄ μλ€λ μλ¬κ° λ°μνλ€.
κ·Έ μ΄μ λ ifλ¬Έ 쑰건μμ κ²°κ³Όμ λ°λΌ returnλ¬Έμ΄ μ€νλμ§ μμ μ μκΈ° λλ¬Έμ΄λ€.
ifλ¬Έμ elseλΈλ‘μ returnλ¬Έμ μΆκ°νκ±°λ ifλ¬Έ μ€ν ν returnλ¬Έμ μΆκ°ν΄μ, νμ κ²°κ΄κ°μ΄ λ°νλλλ‘ ν΄μΌ νλ€.
int max(int a, int b) {
if (a > b) {
return a; // 쑰건μμ΄ μ°ΈμΌ λ μ€ν
}
else {
return b; // 쑰건μμ΄ κ±°μ§μΌ λ μ€ν
}
}
int max(int a, int b) {
if (a > b) {
return a;
}
return b;
}
λ°νκ°
returnλ¬Έμ λ°νκ°μΌλ‘ μ£Όλ‘ λ³μκ° μ€κΈ΄ νμ§λ§ μμμ΄ μ€λ κ²½μ°λ μλ€.
int add(int a, int b) {
return a + b;
}
ν΄λΉ μμμ κ³μ°ν κ²°κ³Όλ₯Ό λ°ννλ€.
λ§€κ°λ³μμ μ ν¨μ± κ²μ¬
π‘ λ©μλμ ꡬνλΆ{}λ₯Ό μμ±ν λ, λ§€κ°λ³μμ κ°μ΄ μ μ νμ§ νμΈνλ κ²μ΄λ€.
νμ λ§ λ§μΌλ©΄ μ΄λ€ κ°λ λ§€κ°λ³μλ₯Ό ν΅ν΄ λμ΄μ¬ μ μκΈ° λλ¬Έμ, κ°λ₯ν λͺ¨λ κ²½μ°μ μμ λν΄ κ³ λ―Όνκ³ κ·Έμ λλΉν μ½λλ₯Ό μμ±ν΄μΌ νλ€.
μμ μ½λ
float divide(int x, int y) {
// λλλ μ(y)κ° 0μΈμ§ νμΈνλ€.
if (y == 0) {
System.out.println("0μΌλ‘ λλ μ μμ΅λλ€.");
return 0;
}
return x / (float)y;
}
λ©μλ divideλ λ§€κ°λ³μ xλ₯Ό yλ‘ λλ κ²°κ³Όλ₯Ό μ€μ(floatνμ )λ‘ λ°ννλ€.
0μΌλ‘ λλλ κ²μ κΈμ§λμ΄ μκΈ° λλ¬Έμ κ³μ° μ μ yμ κ°μ΄ 0μΈμ§λ₯Ό νμΈν΄μΌ νλ€.
yμ κ°μ΄ 0μΈ κ²½μ°μλ returnλ¬Έμ μ΄μ©ν΄μ μμ μ μ€λ¨νκ³ λ©μλλ₯Ό λΉ μ ΈλμμΌ νλ€. κ·Έλ μ§ μμΌλ©΄, λλκΈ°λ₯Ό νλ λ¬Έμ₯μμ νλ‘κ·Έλ¨μ΄ λΉμ μμ μΌλ‘ μ’ λ£λλ€.
μ μ νμ§ μμ κ°μ΄ λ§€κ°λ³μλ₯Ό ν΅ν΄ λμ΄μ¨λ€λ©΄ λ§€κ°λ³μμ κ°μ 보μ νλκ°, 보μ νλ κ²μ΄ λΆκ°λ₯νλ€λ©΄ returnλ¬Έμ μ¬μ©ν΄μ μμ μ μ€λ¨νκ³ νΈμΆν λ©μλλ‘ λλμκ°μΌ νλ€.
β λ§€κ°λ³μμ μ ν¨μ± κ²μ¬λ λ©μλμ μμ±μ μμ΄μ κ°κ³ΌνκΈ° μ¬μ΄ μ€μν λΆλΆμ΄λ€.
Reference
μλ°μ μ μ - λ¨κΆ μ±
'π Book > μλ°μ μ μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
6-3μ₯ λ³μμ λ©μλ δΈ (3.7 ~ 3.12) (0) | 2023.04.18 |
---|---|
6-2μ₯ ν΄λμ€μ κ°μ²΄ (0) | 2023.03.29 |
5-3μ₯ λ€μ°¨μ λ°°μ΄ (0) | 2023.03.29 |
5-2μ₯ Stringλ°°μ΄ (0) | 2023.03.29 |
5-1μ₯ λ°°μ΄ (0) | 2023.03.29 |
λκΈ