«   2025/05   »
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 31
Tags more
Archives
Today
Total
관리 메뉴

장미의 개발일기

배열을 만들고 출력하는 프로그램 만들기 본문

개발일기/Java

배열을 만들고 출력하는 프로그램 만들기

민장미 2023. 4. 17. 23:19

결국 시간들여서 이해하고, 코드 안보고 짤 수 있게 되었는데

찜찜한게 있다.. 내가 필기 해온 코드를 돌리면 2번 작동이 이상하게 됌

 

그런데 내가 코드 고쳤는데 필기랑 다르고? 잘 돌아감

오늘 하나도 안 졸았는데 필기를 잘못한건지??

 

switch문 case 2: 에서

내가 필기한건 

for (int x = 0; x < num.length; x++) {
if (num[x] == 0)
break;
System.out.println(x + "=>" + num[x]);
}

이건데 

if (num[x] == 0)이 도저히 왜 필요한지 이해를 못하겠고...

이거 없이 넘 잘 돌아감 ㅠㅠ 아 궁금해 죽어 

 

+추가: 완전 이해함 4/18일 

case 2:
for (int x = 0; x < num.length; x++) {
if (num[x] == 0) break;
System.out.println(x + "=>" + num[x]);
}
break;

1. 이 식 그대로면 값이 0인 인덱스는 출력이 안됌 

 

2. 빨간색의 break 명령어를 삭제하면

값이 0인 인덱스만 출력을 해줌

 

3. if문을 완전히 제거하면 : 하면 사용자가 수를 입력 안해도 0을 자동으로 입력한 뒤에 

출력을 해줌. 3번이 내가 최종으로 짠 코드로 아래에 있는 코드!

 

 

내가 짠 알고리즘하고 최종으로 고친 코드

//숫자를 입력하면 배열을 출력해주는 프로그램을 만들어보자

//1. 입력창 제작 - 배열의 크기 입력:

//2. 배열을 생성 - 입력한 크기만큼

//3. 변수하나 초기화 (while

//4. 레이블 및 무한루프 생성

//5. 메뉴판만들기 (1번 원소 값 입력 2번 배열 출력 3 종료)

//5-1 배열의 인덱스 값을 1씩 증가하면서 값을 저장

//5-2 인덱스 값이 초과하면 경고문 출력

//5-3 숫자가 아닌 값이 입력됐을 경우, 경고문 출력

//6. 배열 출력하기 (입력 값을 입력 안했을 경우: 0 값이 자동으로 삽입되도록!!!)

//7. 종료문 작성

package important;

import java.util.Scanner;
 
public class Array_Making {
public static void main(String[] args) {
	
	Scanner sc = new Scanner(System.in);
	
	System.out.print("배열의 크기: ");
	int limit= Integer.parseInt(sc.nextLine()); // 입력한 배열의 크기 값 
	int[] array=new int[limit]; //입력한 크기만한 배열 생성; 
	
	
	int i=0; // 배열의 인덱스 값을 저장, 0초기화
	
	exit:
	while(true) {
	
	System.out.print("1번:원소 값 입력 ,2번:배열 출력 3번:종료");
	int menu = Integer.parseInt(sc.nextLine()); //1.메뉴판 만들기
	
	switch(menu) {
	case 1:
		
		try {
			System.out.print("원소 값을 입력하세요");
			int insertNum = Integer.parseInt(sc.nextLine());
			// 배열의 인덱스를 1씩 증가하면서 값을 저장
			array[i] = insertNum;
			i++;
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("배열의 크기를 초과하였습니다.");
			break exit;
		}catch (NumberFormatException e) {
			System.out.println("정수만 입력하세요.");
		}
		break;
		
	case 2:
		for(int k=0; k < array.length; k++) {
			System.out.println(k+"=>"+array[k]);
		} 
		break;
	case 3:
		System.out.println("종료");
		break exit;
	/* 2번 케이스 ? 
	 * for (int x = 0; x < num.length; x++) { if (num[x] == 0) break;
	 * System.out.println(x + "=>" + num[x]); }
	 */
	}//switch
	}//while
	
	
}
}