수업
+11 메소드 예제
hs_developer
2022. 5. 17. 17:49
1. 사용자로부터 아이디를 받아 중복 체크하는 메소드 원형 작성
static boolean idCheck(String id)
static boolean idCheck(String id)
{
boolean bCheck=false; // 중복 안됨
String[] ids = {"hong", "kim", "lee", "shim", "park"};
for(String s:ids)
{
if(s.equals(id))
{
bCheck=true; // 중복 됨
break;
} // true 출력 되어서, else 작성 필요 없음
}
return bCheck;
}
static void process()
{
Scanner sc = new Scanner(System.in);
System.out.println("아이디 입력: ");
String id = sc.next();
boolean bCheck = idCheck(id);
if(bCheck==true)
{
System.out.println("사용 중인 아이디입니다.");
}
else
{
System.out.println("사용 가능한 아이디입니다.");
}
}
public static void main(String[] args) {
process();
}
2. 우편 번호를 검색하는 메소드 원형 작성
static String[] postfind(String dong)
3. 2단에서 9단까지 구구단을 출력하는 메소드 원형 작성
받는 게 없고, 자체에서 출력한다.
static void gugudan()
4. 정수를 입력 받아서 이진법을 출력하는 메소드 작성 (3개)
정수 입력
이진법 처리
출력
// 값 입력
static int inputData()
{
Scanner sc = new Scanner(System.in);
System.out.println("1~32767 사이 정수 입력: ");
return sc.nextInt();
}
// 입력 값을 이진법으로 바꿔주는 메소드
static int[] binaryData(int input)
{
int[] bb = new int[16];
int index = 15; // 뒤부터 시작
while(true)
{
bb[index] = input%2;
input = input/2;
if(input==0)
break;
index--;
}
return bb;
}
static void print(int[] b)
{
for(int i=0; i<b.length; i++)
{
if(i%4==0 && i!=0)
System.out.print(" ");
System.out.print(b[i]);
}
}
static void process()
{
int input = inputData();
int[] b = binaryData(input); // 매개변수 통해서 넘긴다
print(b);
}
public static void main(String[] args) {
process();
}
5. 임의의 정수를 배열로 생성해 입력하고 정렬하는 프로그램
임의의 정수 입력 (배열 생성 후)
정렬 처리
출력
정렬 전:
[74, 70, 81, 56, 53]
오름차순 정렬:
[53, 56, 70, 74, 81]
내림차순 정렬:
[81, 74, 70, 56, 53]
static int[] sort(int[] arr, int type)
{
for(int i=0; i<arr.length-1; i++)
{
for(int j=i+1; j<arr.length; j++)
{
if(type==0)
{
if(arr[i]>arr[j]) // 오름차순
{
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
else
{
if(arr[i]<arr[j]) // 내림차순
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
return arr;
}
static void process()
{
// 임의 정수 입력
int[] arr = new int[5];
// 초기화
for(int i=0; i<arr.length; i++)
{
arr[i]=(int)(Math.random()*100)+1;
}
System.out.println("정렬 전: ");
System.out.println(Arrays.toString(arr));
System.out.println();
System.out.println("오름차순 정렬: ");
int[] res = sort(arr, 0);
System.out.println(Arrays.toString(res));
System.out.println();
System.out.println("내림차순 정렬: ");
res = sort(arr, 1);
System.out.println(Arrays.toString(res));
}
public static void main(String[] args) {
process();
}
6. 연도를 입력 받아 윤년 여부를 확인하는 프로그램
연도 입력 메소드
윤년 처리
출력
// 연도 입력
static int inputYear()
{
Scanner sc = new Scanner(System.in);
System.out.print("연도 입력: ");
return sc.nextInt();
}
// 윤년 처리
// 이 중에 쓸만한 메소드
static boolean isYear(int year)
{
boolean bCheck=false;
if((year%4==0 && year%100!=0 || (year%400==0)))
bCheck=true;
return bCheck;
}
static void print()
{
int year = inputYear();
boolean bCheck=isYear(year);
if(bCheck==true)
System.out.println("윤년입니다!!");
else
System.out.println("윤년이 아닙니다!!");
}
public static void main(String[] args) {
print();
}
다른 방법2
static boolean isYear(int year)
{
boolean bCheck = false;
if((year%4==0 && year%100!=0 || (year%400==0))) // 윤년 조건
bCheck=true;
return bCheck;
}
static void process()
{
// 연도 입력 받기
Scanner sc = new Scanner(System.in);
System.out.print("연도 입력: ");
int year = sc.nextInt();
boolean bCheck = isYear(year);
if(bCheck==true)
{
System.out.println(year + "년은 윤년입니다.");
}
else
{
System.out.println(year + "년은 윤년이 아닙니다.");
}
}
public static void main(String[] args) {
process();
}