본문 바로가기

개발자한걸음

(212)
모듈화로 세 수 비교하기 package class01; public class Test02 { int ans = 0; static int func(int a, int b, int c) { if (a > b) { if (a > c) { return a; } else { return c; } } else { if (b > c) { return b; } else { return c; } } } public static void main(String[] args) { int a = 50; int b = 60; int c = 30; //System.out.println(func(a,b,c)); int Num = func(a, b, c); System.out.println(Num + "이 가장 큰 정수입니다."); } }
모듈화 package class01; import java.util.Random; public class Test01_2 { // [모듈화] static void print(boolean flag) { // 함수의 기능을 유추할수있게 작성 // 함수 3요소 // 메서드 시그니쳐: void print(boolean flag) if (flag) { // flag T일 때 짝수이다. == 짝수 신호를 받으면. System.out.println("짝수!"); } else { System.out.println("홀수!"); // flag F 일 때 홀수이다. } } static boolean ch(int num) { // 정수를 입력받으면 -> T.F로 바꾸는 로직 if (num % 2 == 0) { // if(num가..
함수) 배열을 넣으면 랜덤하게 '홀수만' 뽑기 package class04; import java.util.Random; public class Test09 { // 배열을 넣으면, 짝수를 모두 -- 시키는 로직 static void func(int[] arr) { for (int i = 0; i < arr.length; i++) { if (arr[i] % 2 == 0) { arr[i]--; } } } public static void main(String[] args) { int[] data = new int[5]; Random rand = new Random(); for (int i = 0; i < data.length; i++) { data[i] = rand.nextInt(10) + 1; } for (int i = 0; i < data.leng..
함수) 재귀함수, 팩토리얼을 이용한 이해2 package class04; import java.util.Scanner; public class Test07_2 { static int fac(int n) { if (n == 0) { // 만약에 n의 값이 0이 된다면 1의 값을 출력해라. return 1; } return (n * fac(n - 1)); // 계속해서 fac(n-1)의 값을 찾기 때문에 계속 -1씩 됨 } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("양의 정수를 입력"); int n = sc.nextInt(); System.out.println(fac(n)); } }
함수) 재귀함수, 팩토리얼을 이용한 이해 package class04; // [함수 심화] : 재귀 // 재귀함수(순환함수) : 주어였던게 목적어이기도 할때 ex) 팩토리얼 // 4!:4x3!=23 / N!=N*(N-1)! / f(n)=n*f(n-1) // 만약 이해가 안된다면 함수 초반부분 복습하기 public class Test07 { static int fac(int n) { System.out.println(n); if (n == 1) { return 1;// 1*0이 아니라 그냥1임 , 종료조건 } return n * fac(n - 1); // return에 포함되있는 fac(n-1)에 대한걸 모르니까 계속해서 n*fac(n-1)을 반복하다 보니 메모리 부족.. // 재귀함수도 "종료조건"이 필요함! } public static voi..
함수) output O / input O인 함수 package class03; public class Test06 { // output O input O //void는 반환값이 없을 때 사용 // 함수명이 같은 오버로딩~ static int func4(int a, int b) { int res = ++a + b; return res; } static int fun4(int a, int b, int c) { return a + b + c; } public static void main(String[] args) { int a = 10; int b = 20; System.out.println(func4(a, b)); System.out.println("a= " + a); System.out.println("b= " + b); } } // 함수는 선언-> ..
함수) output O / input X 인 함수2 package class03; public class Test05_2 { static int fun3() { return 123; // 자기자신을 호출한 위치로 "값"을 반환+함수를 종료 } static int f1() { int num = 123; return num; } static int f2() { int num = 10; return num; // return은 함수를 즉시 종료 } public static void main(String[] args) { int num = 1; num = f1(); System.out.println("num= " + num); System.out.println(f2()); } }
함수) output O / input X 인 함수 package class03; public class Test05 { // output O input X static int func3() { return 10; // 자기자신을 호출한 위치로 값을 반환+ 함수를 종료 } public static void main(String[] args) { int num = func3(); // 대입 연산자를 수행하기 위해선 먼저 // 1.fun3()의 값을 알아야한다.== fun3()를 먼저 수행한다는 뜻. // 2. 대입 연산자를 수행 System.out.println("num= " + num); System.out.println(func3()); } }