Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
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
Archives
Today
Total
관리 메뉴

Everything has an expiration date

082 - Java 배열 : 사용자로부터 인원수를 입력 받고, 입력 받은 인원 수 만큼의 학생 이름과 전화번호를 입력받아 결과를 출력하는 프로그램 본문

[Java]/Program source (java)

082 - Java 배열 : 사용자로부터 인원수를 입력 받고, 입력 받은 인원 수 만큼의 학생 이름과 전화번호를 입력받아 결과를 출력하는 프로그램

Jelly-fish 2023. 9. 5. 16:56
/*==========================
	■■■ 배열 ■■■	
	- 배열의 선언과 초기화
	- 배열의 기본적 활용
============================*/

// 사용자로부터 인원수를 입력받고
// 입력받은 인원 수 만큼의 학생 이름과 전화번호를 입력받아
// 이렇게 입력받은 데이터를 이름 배열과 전화번호 배열로 구성하여
// 결과를 출력할 수 있는 프로그램을 구현한다.

// 실행 예)
// 입력 처리할 학생 수 입력(명, 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)
	{
		// 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](공백 구분) : 박범구 010-1234-2345
		// 인원 수 만큼의 안내 메세지 출력 및 입력값 담아내기
		
		//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("-----------------------------");



	}
}

// 실행 결과

/*
입력 처리할 학생 수 입력(명, 1~10) : 250
입력 처리할 학생 수 입력(명, 1~10) : 0
입력 처리할 학생 수 입력(명, 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)
	{
		// 1. 변수 선언.
		Scanner sc = new Scanner(System.in);
		int inputStudentNum;	// >> 사용자가 입력한 학생 수 저장
		String[] nameArr;
		String[] callArr;
		
		// 2. 사용자로부터 학생의 인원수를 입력 받기.
		do
		{
			System.out.print("입력 처리할 학생 수 입력(명, 1~10) : ");
			inputStudentNum = sc.nextInt();

		}
		while (inputStudentNum < 1 || inputStudentNum > 10);

		// 배열 길이를 do 괄호 안에 넣어버릴 경우, 음수 값을 입력 했을 때
		// 배열 길이를 음수로 지정하려고 시도해 버리기 때문에 오류 발생.
		// 값만 do 괄호 안에서 받고, 제대로 받은 후에 배열의 길이를 설정한다.

		nameArr = new String[inputStudentNum];	// 사용자가 입력한 학생 수만큼 이름 입력
		callArr = new String[inputStudentNum];	// 사용자가 입력한 학생 수만큼 전화번호 입력
		

		// 제대로 입력하면 넘어오는 부분
		

		// 3. 사용자로부터 학생들의 이름과 전화번호를 입력받는 부분.
		// 이름 전화번호 입력[1](공백 구분) : 박범구 010-1234-2345

		for (int i = 0; i < inputStudentNum; i++)
		{
			System.out.printf("이름 전화번호 입력[%d](공백 구분) : ", i+1);
			nameArr[i] = sc.next();
			callArr[i] = sc.next();
		}
	
		// 4. 출력하기
		// -----------------------------
		// 전체 학생 수 : 3
		// -----------------------------
		// 이름		전화번호

		// 박범구	010-1234-2345
		// 엄재용	010-2345-3456
		// 오수경	010-3456-4567
		// -----------------------------
		// 계속하려면 아무 키나 누르세요...

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


	}
}

=============================================================================*/