📚 Study/Java

JAVA :: Test082_배열 (입력받은 학생 수, 이름, 전화번호를 배열로 구성하여 결과 출력하는 프로그램 구현)

bono-hye 2023. 9. 11. 09:48

○ 실습

사용자로부터 인원수를 입력받고 입력받은 인원 수 만큼의 학생 이름과 전화번호를 입력받아

이렇게 입력받은 데이터를 이름 배열과 전화번호 배열로 구성하여 결과를 출력할 수 있는 프로그램을 구현한다.

 

실행 예)

입력 처리할 학생 수 입력(명, 1~10) : 27

입력 처리할 학생 수 입력(명, 1~10) : -5

입력 처리할 학생 수 입력(명, 1~10) : 3

이름 전화번호 입력[1](공백 구분) : 홍길동 010-1234-2345

이름 전화번호 입력[2](공백 구분) : 김철수 010-2345-3456

이름 전화번호 입력[3](공백 구분) : 김영희 010-3456-4567

 

------------------------

전체 학생 수 : 3

------------------------

이름     전화번호

홍길동 010-1234-2345

김철수 010-2345-3456

김영희 010-3456-4567

---------------------------

계속하려면 아무 키나 누르세요...

 

▼ 내가 작성한 코드

import java.util.Scanner;

public class Test082
{
	public static void main(String[] args)
	{

		int num;

		Scanner sc = new Scanner(System.in);
		
		do
		{
			System.out.print("입력 처리할 학생 수 입력(명, 1~10) : ");
			num = sc.nextInt();
		}
		while (num<1 || num>10);

		String[] arrName = new String[num];
		String[] arrNumber = new String[num];

		for (int n=0;n<num;n++)
		{
			System.out.printf("이름 전화번호 입력[%d](공백 구분) : ",n+1);
			arrName[n] = sc.next();
			arrNumber[n] = sc.next();
		}

		System.out.println();
		System.out.println("---------------");
		System.out.printf("전체 학생 수 : %d\n", num);
		System.out.println("---------------");	
		System.out.println("이름 전화번호");
		for (int n=0;n<num ;n++ )
		{
			System.out.printf("%s %s\n", arrName[n], arrNumber[n]);
		}
		System.out.println();
	}
}

▼ 같이 작성한 코드

import java.util.Scanner;

public class Test082
{
	public static void main(String[] args)
	{
		// Scanner 인스턴스 생성
		Scanner sc = new Scanner(System.in);

		// 사용자가 입력하는 학생 수를 담아낼 변수
		int memberCount = 0;

		do
		{
			System.out.print("입력 처리할 학생 수 입력(명, 1~10) : ");
			memberCount = sc.nextInt();
		}
		while (memberCount<1 || memberCount>10);

		//테스트(확인)
		//System.out.println("사용자가 입력한 인원 수 : "+memberCount);
		//--==>> 사용자가 입력한 인원 수 : 5

		// 사용자가 입력한 인원 수를 토대로
		// 이름 배열과 전화번호 배열을 생성해야 한다.

		// 인원 수 만큼의 이름 저장 배열 구성
		String[] names = new String[memberCount];

		// 인원 수 만큼의 전화번호 저장 배열 구성
		// String[] tels = new String[memberCount];
		String[] tels = new String[names.length];

		// 이름 전화번호 입력[1](공백 구분) :
		// 인원 수 만큼의 안내 메세지 출력 및 입력값 담아내기
		// for (int i=0; i<names.length; i++)
		// for (int i=0; i<tels.length; i++)
		for (int i=0; i<memberCount ;i++ )
		{
			System.out.printf("이름 전화번호 입력[%d](공백 구분) : ", (i+1));

			// 홍길동 010-1234-2345
			// ------
			names[i] = sc.next();

			// 홍길동 010-1234-2345
			//        -------------
			tels[i] = sc.next();
		}

		// 최종 결과(이름, 전화번호) 출력
		System.out.println();
		System.out.println("----------------");
		System.out.printf("전체 학생 수 : %d명\n", memberCount);
		System.out.println("----------------");
		// memberCount == names.length == tels.length

		System.out.println("이름    전화번호");

		// 학생 리스트 출력 → 반복문 구성
		for (int i=0; i<memberCount ;i++)
		{
			System.out.printf("%3s %14s\n", names[i], tels[i]);
		}

		System.out.println("----------------");

	}
}