1부터 n까지 정수의 합을 구해서 반환하는 메서드를 작성
import java.util.Scanner
public class SumUp {
// 1부터 n까지의 합
static int sumUp(int n) {
int sum=0;
do {
sum+= n;
n--;
}while(n>0);
return sum;
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("1부터 n까지 합을 구합니다. n값을 입력하세요: ");
int n = stdIn.nextInt();
int result = sumUp(n);
System.out.printf("n까지의 합은 %d 입니다.", result);
}
}
결과
**1부터 n까지 합을 구합니다. n값을 입력하세요: 10
n까지의 합은 55 입니다.**
- 매개변수 n이
final int n
으로 선언되면 메서드 안에서 n값을 변경할 수 없다. - 메서드 이름 앞에는 자료형을 표시한다.
void
가 오면 아무것도 반환하지 않고,String
가 오면 문자열을 반환한다.
문자 c를 n개 표시하는 putChar 메서드와 이 메서드를 내부에서 호출해서 n개 연속으로 표시하는 putStars 메서드를 작성한다. 이 메서드들을 이용하여 직각삼각형을 만드는 프로그램을 작성하자.
import java.util.Scanner;
static void putChar(char c, int n) {
while(n-->=0) {
System.out.print(c);
} //while
System.out.println();
} // putChar
static void putStars(int n) {
putChar('*', n);
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("*을 출력하여 왼쪽 아래가 직각인 삼각형을 출력합니다.\n 삼각형의 층 수를 입력하세요: ");
int floor = stdIn.nextInt();
for (int i=0; i<floor; i++) {
putStars(i);
} // for
}
결과
*을 출력하여 왼쪽 아래가 직각인 삼각형을 출력합니다.
삼각형의 층 수를 입력하세요: 5
*
**
***
****
*****
배열 a에서 요소a[idx]부터 n개의 요소를 삭제한 배열을 반환하는 arrayRmvOfN 메서드를 작성
import java.util.Scanner;
static int[] arrayRmvOfN(int[] a, int idx, int n) {
// 배열 a의 a[idx]부터 n개의 요소를 삭제한 배열을 반환
if(n<0 || idx<0 || idx>a.length) {
return a.clone();
} //if
else {
if (idx + n > a.length)
n = a.length - idx;
int[] c = new int[a.length - n];
int i=0;
for(; i<idx; i++)
c[i] = a[i];
for(; i<c.length; i++)
c[i] = a[i+idx];
return c;
} //else
} //arrayRmvOfN
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("1차원 배열을 생성합니다. 배열의 길이를 입력하세요: ");
int arraySize = stdIn.nextInt();
int[] a = new int[arraySize];
System.out.println("배열의 요소를 입력합니다.");
for(int i=0; i<arraySize; i++) {
System.out.print("배열["+i+"]의 요소: ");
a[i] = stdIn.nextInt();
} //for
System.out.print("배열의 요소를 인덱스x 부터 y개를 삭제합니다. \nx: ");
int x = stdIn.nextInt();
System.out.print("y: ");
int y = stdIn.nextInt();
System.out.println("반환된 배열을 출력합니다.");
int[] result = arrayRmvOfN(a, x, y);
for(int i=0; i<result.length; i++) {
System.out.printf("%d ", result[i]);
} //for
} //main
결과
1차원 배열을 생성합니다. 배열의 길이를 입력하세요: 7
배열의 요소를 입력합니다.
배열[0]의 요소: 1
배열[1]의 요소: 3
배열[2]의 요소: 6
배열[3]의 요소: 3
배열[4]의 요소: 9
배열[5]의 요소: 10
배열[6]의 요소: 0
배열의 요소를 인덱스x 부터 y개를 삭제합니다.
x: 2
y: 5
반환된 배열을 출력합니다.
1 3
2개의 int형 정수 a, b의 최솟값, 3개의 int형 정수 a, b, c의 최솟값, 배열 d의 최솟값을 각각 구하는 메서드 생성. 정의된 메서드는 다음의 형식을 사용한다.
- int min( int a, int b ), int min( int a, int b, int c ), int min(int[] d)
- 메서드 오버로딩이란 같은 이름의 메서드를 다중정의하여 상황에 따라 비슷한 기능을 수행할 수 있도록 메서드를 제작하는 것이다.
imort java.util.Scanner
static int min(int a, int b) {
int min = a;
if (a>b) min = b;
return min;
} //min
static int min(int a, int b, int c) {
int min = a;
if (a>b) min = b;
if (min>c) min = c;
return min;
} //min
static int min(int[] d) {
int min = d[0];
for(int i=0; i<d.length; i++) {
if (min>d[i]) min=d[i];
}
return min;
} //min
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("x값: ");
int x = stdIn.nextInt();
System.out.print("y값: ");
int y = stdIn.nextInt();
System.out.print("z값: ");
int z = stdIn.nextInt();
System.out.print("배열 x의 크기: ");
int size = stdIn.nextInt();
int[] d = new int[size];
for (int i=0; i<size; i++) {
System.out.print("배열의 요소 d["+i+"] 입력: ");
d[i] = stdIn.nextInt();
} //for
System.out.println("min(x, y): "+ min(x, y));
System.out.println("min(x, y, z): "+ min(x, y, z));
System.out.println("min(d): "+ min(d));
} //main
결과
x값: 5
y값: 9
z값: 2
배열 x의 크기: 4
배열의 요소 d[0] 입력: 9
배열의 요소 d[1] 입력: 2
배열의 요소 d[2] 입력: 6
배열의 요소 d[3] 입력: 4
min(x, y): 5
min(x, y, z): 2
min(d): 2
'Java > Java 기초' 카테고리의 다른 글
Java13 클래스 생성자 다중 생성 (0) | 2020.05.14 |
---|---|
Java12 클래스 기본 (0) | 2020.05.13 |
Java10 참조형 객체, 2차원 배열 (0) | 2020.05.11 |
Java9 문자열 배열 (0) | 2020.05.08 |
Java8 배열과 확장for문 (0) | 2020.05.07 |