수업

+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();
    }