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