메서드 마지막
temp이용하여 값 살리기
랜덤함수 이용해서 숫자 맞추기
package com.day9;
import java.util.*;
public class SelectNum {
public static int selectNum() {
int num = (int)(Math.random()*100+1);
return num;
}
public static int selectNum2(int start, int end) {
int num = (int)(Math.random()*(end-start+1)+start);
return num;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1~100 사이 숫자를 입력하세요");
String result = "";
int selectNum = selectNum2(1,100);
//System.out.println(selectNum);
for(int i = 1; i <= 4; i++) {
int num = sc.nextInt();
if(!(num == selectNum)) {
if(i == 4) {
result = "실패";
System.out.println(result);
}
else {
if(num > selectNum) {
result = "좀 더 작은 숫자를 입력";
System.out.println(result);
}
else if(num < selectNum) {
result = "좀 더 큰 숫자를 입력";
System.out.println(result);
}
}
}
else {
result = "정답";
System.out.println(result);
break;
}
}
}
}
재귀함수 예 팩토리얼
package com.day9;
//재귀함수
import java.util.*;
public class RecursiveCall {
// f(n) = n*(n-1)*(n-2)...*1
public static int factorial(int n) {
int result = 0;
if(n==1) {
result = 1;
} else {
result = n*factorial(n-1);
}
return result;
}
public static void main(String[] args) {
int res = factorial(4);
System.out.println("4! : "+ res);
}
}
피보나치 수열
package com.day9;
import java.util.*;
public class Fibonacci {
public static int fib(int n) {
int result = 0;
if(n == 0) {
result = 0;
}
else if(n == 1) {
result = 1;
}
else {
result = fib(n-2)+fib(n-1);
}
return result;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("값 입력");
int res = sc.nextInt();
for(int i = 0; i < res; i++) {
System.out.print(fib(i));
if(i != res-1) {
System.out.print(", ");
}
}
}
}
오버로딩
package com.day9;
public class Overloading {
//메서드 이름이 같으나 매개변수가 다른 메서드
//오버로딩 메서드를 사용하는 이유 자료형이나, 매개변수 개수가 다르다고
//매번 새로운 매서드를 만들경우 복잡함
public static int add(int a, int b) {
return a+b;
}
public static double add(double a, double b) {
return a+b;
}
public static String add(String a, String b) {
return a+b;
}
public static int add(int a, int b, int c) {
return a+b+c;
}
// 반환타입 신경안써도 됨.
// 매개변수에 들어가는 값, 개수와 자료형만
public static void main(String[] args) {
int result = add(5,8);
double d1 = 3.14, d2 = 5.67;
double res = add(d1, d2);
String s1 = "java", s2 = "Spring";
String str = add(s1, s2);
System.out.println(result);
System.out.println(res);
System.out.println(str);
}
}
면적구하기 오버로딩(사각형, 원)
package com.day9;
import java.util.*;
public class Area {
public static double area(int a, int b) {
double area = a*b;
return area;
}
public static double area(int a) {
double area = 3.14*a*a;
return area;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("가로,세로,반지름 입력");
int w = sc.nextInt();
int h = sc.nextInt();
int r = sc.nextInt();
double areaS = area(w,h);
double areaC = area(r);
System.out.println("사각형 면적 : "+areaS+"\n원의 면적 : "+areaC);
}
}
배열
package com.day9;
public class ArrayTest1 {
public static void main(String[] args) {
// 배열 선언, 메모리할당, 초기화 따로
int [] arr;
arr = new int[3];
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
// 선언, 메모리할당 한번에
int[] arr2 = new int[2];
arr2[0] = 5;
arr2[1] = 6;
// 다 한번에
int[] arr3 = {10,20,30};
// or
int[] arr4 = new int[] {20,30,40};
int[] arr5;
arr5 = new int[] {10,30,70};
//배열 요소 출력
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
배열 연습1
package com.day9;
public class ArrayTest2 {
public static void main(String[] args) {
int[] score = {90, 88, 75, 97, 66, 81, 100};
for(int i = 0; i < score.length; i++) {
System.out.println(score[i]);
}
System.out.println("\n5점 가산후");
for(int i = 0; i < score.length; i++) {
score[i] += 5;
if(score[i] >= 100) {
score[i] = 100;
}
System.out.println(score[i]);
}
}
}
배열 연습2 평균 구하기
package com.day9;
public class ArrayTest3 {
public static void main(String[] args) {
float[] arr;
arr = new float[3];
arr[0] = 12.5f;
arr[1] = -24.3f;
arr[2] = 0.76f;
double[] arr1 = {70.2, 80.1, 99.6, 100, 77.3};
double sum = 0, avg = 0;
for(int i = 0; i < arr1.length; i++) {
sum += arr1[i];
}
avg = sum/arr1.length;
System.out.println("총점 : "+sum+"\n평균 : "+avg);
System.out.println(Math.round(avg*10)/10.0);
}
}
연습3
package com.day9;
import java.util.*;
public class ArrayTest4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
/*
int[] arr = new int[5]; // 5, 10, 15, 20, 25
for(int i = 0; i < arr.length; i++) {
arr[i] = 5*(i+1);
System.out.println(arr[i]);
}
*/
System.out.println("실수 4개 입력");
double[] arr1 = new double[4];
for(int i = 0; i < arr1.length; i++) {
arr1[i] = sc.nextDouble();
}
for(int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
}
}
연습4
package com.day9;
import java.util.*;
public class ArrayTest4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
/*
int[] arr = new int[5]; // 5, 10, 15, 20, 25
for(int i = 0; i < arr.length; i++) {
arr[i] = 5*(i+1);
System.out.println(arr[i]);
}
*/
System.out.println("실수 4개 입력");
double[] arr1 = new double[4];
for(int i = 0; i < arr1.length; i++) {
arr1[i] = sc.nextDouble();
}
for(int i = 0; i < arr1.length; i++) {
System.out.println(arr1[i]);
}
}
}