본문 바로가기

6개월 대장정/JAVA 개념

7일차 - 보충, 응용문제

반응형

안녕하세요. pitang입니다.

Quiz형식으로 살펴보겠습니다.

보충이기에 정답은 따로 접어두지 않고 열어놓겠습니다.

 

ArrayInsert

1. Scanner를 생성하고 크기가 100인 배열을 선언하세요.

2. While문(무한루프)에서 먹고 싶은 음식을 입력받아 배열에 저장하세요.

3. "그만"을 입력받으면 탈출하세요. 

4. For문을 통해 배열에 저장되어 있는 음식을 모두 출력하세요.

<console>
먹고 싶은 음식이 무엇입니까?
입력해보세요.
> 햄버거
> 피자
>
내가 먹고 싶은 음식들 : [햄버거, 피자, 회]
public class ArrayInsert {

	public static void main(String[] args) {
    
    	Scanner scan = new Scanner(System.in);
    
    	String[] arr = new String[100];
    	int count = 0;
    
    	System.out.println("먹고 싶은 음식이 무엇입니까?");
    	System.out.println("입력해보세요.");
    
    	while(true) {
    		System.out.print("> ");
    		String menu = scan.nextLine();
        	if(menu.equals("그만")) break;
        
        	arr[count] = menu;
        	count++;
    	}
    
    	System.out.print("내가 먹고싶은 음식들 : [");
    	for(int i = 0; i < count; i++) {
    		System.out.print(arr[i]);
        	if( i == count-1 ) break;
        	System.out.print(", ");
    	}
    	System.out.print("]");
    
    	scan.close();
 	}       
}

nextLine은 공백도 포함해서 입력받을 수 있다.

문자열 비교는 ==으로 비교가 되지 않고 변수 이름. equals("문자")로 같다고 표현한다.

 

ArrayUpdate

1. Scanner를 생성하고 [강타, 문희준, 토니안, 장우혁, 이재원] 배열을 생성해주세요.

2. 수정할 이름을 입력하고 배열에 그 이름이 있다면 "이름이 정상 수정되었습니다!"를 출력하고

    변경할 이름을 입력해 배열을 바꾸어 출력하세요.

3. 수정할 이름이 없다면 "찾는 이름이 없습니다"를 출력하세요.

<console>
수정할 이름을 입력하세요. > 강타
변경할 이름을 입력하세요. > 홍길동
이름이 정상 수정되었습니다!
[홍길동, 문희준, 토니안, 장우혁, 이재원]
public class ArrayUpdate {

	public static void main(String[] args){
    
    	Scanner scan = new Scanner(System.in);
        
        String[] arr = {"강타", "문희준", "토니안", "장우혁", "이재원"};
        
        System.out.print("수정할 이름을 입력하세요. > ");
        String name = scan.next();
        boolean flag = false;
        
        for(int i = 0; i < arr.length; i++) {
        	if(name.equals(arr[i])) {
            	System.out.print("변경할 이름을 입력하세요. > ");
        		arr[i] = scan.next();
                flag = true;
            }
        }
        if(flag) {
        	System.out.println("이름이 정상 수정되었습니다!");
        } else {
        	System.out.println("찾는 이름이 없습니다!");
        }	
        System.out.println(Arrays.toString(arr));    
    }
}

배열의 변경은 입력을 받고 있는지 없는지 탐색을 한 후, 변경한다.

boolean형 변수를 선언해 for문안에 true로 대입해 준 것은 if문을 실행했다는 증거로 활용된다.

 

ArrayDelete

1. Scanner를 생성하고 [강타, 문희준, 토니안, 장우혁, 이재원] 배열을 생성해주세요.

2. 삭제할 이름을 입력하고 삭제할 이름이 있다면 그 이름을 삭제한 배열을 출력하세요.

3. 삭제할 이름이 없다면 "삭제할 이름이 없습니다."를 출력하세요.

<console>
삭제 할 이름을 입력하세요. > 강타
강타을(를) 삭제합니다.
====삭제 후 정보====
문희준 토니안 장우혁 이재원
public class ArrayDelete {
	
    public static void main(String[] args) {
    
    	Scanner scan = new Scanner(System.in);
    
    	String[] arr = {"강타", "문희준", "토니안", "장우혁", "이재원"};
        
        System.out.print("삭제할 이름을 입력하세요. > ");
        String name = scan.next();
        int count = arr.length;
        boolean flag = false;
        
        for(int i = 0; i < count; i++){
        	if(name.equals(arr[i])) {
            	System.out.println(name + "을(를) 삭제합니다.");
                for(int j = i; j < count-1; j++){
                arr[j] = arr[j+1];
                }
            count--;
            flag = true;
            }
        }
    	if(flag) {
        	System.out.println("====삭제 후 정보====");
            for(int i = 0; i < count; i++){
            	System.out.print(arr[i] + " ");
            }
        } else {
        	System.out.println("\n=================");
            System.out.println("삭제 할 이름이 없습니다.");
        }
    }
}

배열의 삭제는 입력을 받고 있는지 없는지 탐색을 한 후, 당겨와서 삭제한 척을 해준다.

 

총 3개의 응용문제를 알아봤습니다.

반복문, 탈출문, 배열등을 활용해 푸는 문제였습니다.

 

감사합니다.

 

*m1 맥북을 사용 중입니다.*

728x90
반응형