일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바
- 자바 오류
- 웹브라우저 수용도
- 웹 브라우저 전쟁
- 예외
- 생성자
- 함수 선언
- 배열 예제
- 배열 3요소
- R1C3
- Doit입문SQL
- SQL
- 우아한테크
- html
- 숫자형식오류
- 숫자 형식
- DoitSQL입문
- 자바 예외
- 예제
- dbms
- 크롤링 오류
- SQL입문
- 데이터베이스
- HTML역사
- DoIt
- 함수
- 키-값 데이터베이스
- DoitSQL
- 크롤링
- 페이지분석
Archives
- Today
- Total
프로그래밍
[자바 기초] day05 : 함수 생성 방식 본문
728x90
반응형
2023.05.09.화
함수
함수를 작성하는 방식에는 2가지가 있다.
1. 메서드 시그니처를 먼저 만들고 기능을 구현하는 방법
2. 기능을 구현하고 메서드 시그니처를 맞추는 방식이다
1.방식으로 함수 선언
// Q1) 어떤 정수가 입력되었을때 짝수인지 판별하는 함수
// input: 정수 output: T/F 기능: 짝수 판별
public static boolean isEven(int num) {
if (num % 2 == 0) {
return true; //함수 즉시종료
}
return false;
}
2.방식으로 함수 선언
// Q2) 어떤 정수가 입력되었을때 음수인지 판별하는 함수
// main에 이미 있는 기능을 가져와서 func()에 넣고 시작
public static int checkMinus(int num, int b) {
if (num < 0) {// 음수
b++;
}
return b;
}
1, 2 함수 사용
public static void main(String[] args) {
if (isEven(num)) {// 짝수
a++;
}
if (num < 0) {// 음수
b=checkMinus(num,b);
}
}
1 방식이 더욱더 본래의 취지에 맞다고 볼 수 있다
2 방식의 경우 b++의 기능까지 함께 들어가 있다
전체코드
package class00;
import java.util.Scanner;
//[ 과제 ]
//1. main()에서 정수를 10번 입력할 예정이다.
//2. 짝수이면 a++;
//3. 음수이면 b++;
//4. 10번 입력완료했습니다. a=ㅁ,b=ㅁ입니다. 라고 출력한다
//5. 만약, 입력된 정수가 0이라면 프로그램을 종료한다
// ex) 3번 입력완료했습니다. a=2,b=1입니다.
// 함수를 활용해서 해당 과제를 해결하여라
// 함수는 최대 3개까지 활용할수있다
public class Test01 {
// 1. 메서드 시그니처 먼저 만들기
// 2. 기능을 먼저
// [1] 90퍼
// Q1) 어떤 정수가 입력되었을때 짝수인지 판별하는 함수
// input: 정수 output: T/F 기능: 짝수 판별
public static boolean isEven(int num) {
if (num % 2 == 0) {
return true; //함수 즉시종료
}
return false;
}
// [2]
// Q2) 어떤 정수가 입력되었을때 음수인지 판별하는 함수
// main에 이미 있는 기능을 뜯어서 func()에 넣고 시작
public static int checkMinus(int num, int b) {
if (num < 0) {// 음수
b++;
}
return b;
}
//[1] 방식
// Q3) 어떤 정수가 입력되었을때 0인지 판별 ---> 종료 안내 함수
// input: 정수 output: T/F 기능: 종료 안내
public static boolean check(int num) {
if (num==0) {
System.out.println("0이 입력되어 종료합니다...");
System.out.println();
return true;
}
return false;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 몇번 입력할지 모르기 때문
int cnt = 0;
int a = 0;// 짝수의 개수
int b = 0;// 음수의 개수
while (cnt < 10) {// 10번 입력할때까지
System.out.println((cnt + 1) + "번째 정수를 입력하세요"); // 사용자 편의, UI
System.out.println("입력) ");
int num = sc.nextInt();
if (check(num)) {// 0 입력시 종료
break;
}
cnt++;
if (isEven(num)) {// 짝수
a++;
}
if (num < 0) {// 음수
b=checkMinus(num,b);
}
}
System.out.println(cnt + "번 입력완료 되었습니다.");
System.out.println("짝수: " + a + "개");
System.out.println("음수: " + b + "개");
}
}
활용 예제)
package class00;
import java.util.Random;
import java.util.Scanner;
// 10개의 랜덤정수가 저장된 배열(범위:1~100)이 있다
// 사용자가 정수를 입력 ex) 50
// 50은 [2]에 저장되어있습니다.
// 50은 배열에 없습니다!
public class Test02 {
// 인풋: int[] 아웃풋: (boolean, )int
// 기능: 배열에 특정 정수가 있는지, 있다면 몇번인덱스인지
// => 2개 이상 반환 불가
// 반환값이 여러 개일 수 없기 때문에 int로 false를 지정
public static int checkNum(int data[], int num) {
for (int i = 0; i < data.length; i++) {
if (data[i] == num) {
return i;
}
}
return -1; // false를 의미
}
public static void main(String[] args) {
Random rand = new Random();
Scanner sc = new Scanner(System.in);
int data[] = new int[10]; //10개의 정수 입력 받을 것이기 때문
//10개의 랜덤정수 생성
for (int i = 0; i < data.length; i++) {
data[i] = rand.nextInt(100) + 1;
}
//10개의 랜덤정수 출력
System.out.print("[");
for (int v : data) {
System.out.print(v + " ");
}
System.out.print("]");
System.out.println();
System.out.println("정수 입력) ");
int num = sc.nextInt();
int index = checkNum(data, num);// 함수를 적게 호출하기 위함
if (index < 0) {
System.out.println(num + "은 배열에 없습니다");
} else {
System.out.println(num + "은 [" + index + "]에 저장되어 있습니다.");
}
}
}
728x90
반응형
'자바 > 자바 기초' 카테고리의 다른 글
[자바 기초] day05 : 369 게임 프로그램 예제 (0) | 2023.05.09 |
---|---|
[자바 기초] day05 : 함수의 인자 (0) | 2023.05.09 |
[자바 기초] day04 : 함수 (0) | 2023.05.08 |
[자바 기초] day04 : 자판기 프로그램 만들기 (0) | 2023.05.08 |
[자바 기초] day03 : 난수 생성하기(Random 클래스 활용) (0) | 2023.05.06 |
Comments