package function;
import java.util.Scanner;
public class Ex02 {
public static void main(String[] args) throws Exception {
// 함수의 호출형식에 맞춰 함수 정의하기(함수 만들기)
// 1) 두 정수의 덧셈
int t1 = add(12, 23);
int t2 = add(1234, 5678);
System.out.println("t1 : " + t1);
System.out.println("t2 : " + t2);
// 2) 두 정수를 전달받아서 큰 값을 반환하는 함수
int t3 = bigNumber(12, 23);
int t4 = bigNumber(1234, -5678);
System.out.println("t3 : " + t3);
System.out.println("t4 : " + t4);
// 3) 반지름을 전달받아서, 원의 면적을 double 로 반환하는 함수
// 원주율은 3.14로 계산 (원의 넓이 = 반지름 * 반지름 * 3.14)
double t5 = circleSize(3);
double t6 = circleSize(3.5);
System.out.println("t5 : " + t5);
System.out.println("t6 : " + t6);
// 4) 문자열의 길이를 정수로 반환하는 함수
int t7 = len("안녕하세요");
int t8 = len("Hello, world !!");
System.out.println("t7 : " + t7);
System.out.println("t8 : " + t8);
// 5) 전달받은 정수가 짝수인지 아닌지 판별하는 함수
boolean t9 = isEvenNumber(9);
boolean t10 = isEvenNumber(10);
System.out.println("t9 : " + t9);
System.out.println("t10 : " + t10);
// "Hello".is
// 판별하는 함수(boolean을 반환하는 함수)는 보통 is 혹은 can, has 등으로 시작한다
String text = "일분 일초가 달콤해\r\n" +
"이 남자 도대체 뭐야\r\n" +
"사랑에 빠지지 않곤\r\n" +
"못 배기겠어\r\n" +
"온 종일 내 맘은 저기\r\n" +
"시계바늘 위에 올라타\r\n" +
"한 칸씩 그대에게 더 가까이";
Scanner sc = new Scanner(text); // 문자열을 읽어내는 Scanner
while(sc.hasNextLine()) {
System.out.println(sc.nextLine());
Thread.sleep(500);
}
sc.close();
}
// 자바의 함수는 반드시 지정된 타입의 값을 반환하도록 설계해야 한다
// 함수 내부에 다른 함수를 정의하지 않는다
// 함수는 클래스 아래에 있어야 한다
static int add(int n1, int n2) {
int answer = 0;
answer = n1 + n2;
return answer;
}
static int bigNumber(int n1, int n2) {
int answer = n1;
if(answer < n2) {
answer = n2;
}
return answer;
}
static double circleSize(double radius) { // 매개변수는 호출하는 사람이 알아볼 수 있도록
double answer = 0;
answer = radius * radius * 3.14;
return answer;
}
static int len(String str) {
return str.length(); // 만들어진 함수에서도 다른 함수를 호출할 수 있다
// 함수간의 연계작업이 가능하다
// JVM이 main을 호출
// main이 Ex02.len 호출
// Ex03.len이 String.length 호출
// main -> len -> length
}
static boolean isEvenNumber(int num) {
boolean flag = num % 2 == 0;
return flag;
}
}