본문 바로가기
언어/JAVA

[JAVA] 명품 자바프로그래밍 실습문제 3장

by merona99 2019. 10. 9.
반응형

명품 자바프로그래밍 실습문제 3장

(반복문과 배열 그리고 예외 처리)

 

 

[3장 2번]

다음 2차원 배열 n을 출력하는 프로그램을 작성하라

 

[소스코드]

 

 

[3장 3번]

Scanner를 이용하여 정수를 입력받고 다음과 같이 *를 출력하는 프로그램을 작성하라. 다음은 5를 입력받았을 경우이다.

 

[소스코드]

 

 

[3장 4번]

Scanner를 이용하여 소문자 알파벳을 하나 입력받고 다음과 같이 출력하는 프로그램을 작성하라. 다음은 e를 입력받았을 경우이다.

 

[소스코드]

 

 

[3장 5번]

양의 정수를 10개 입력받아 배열에 저장하고, 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램을 작성하라.

 

[소스코드]

 

 

[3장 6번]

배열과 반복문을 이용하여 프로그램을 작성해보자. 키보드에서 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1원짜리 동전이 각 몇 개로 변환되는지 예시와 같이 출력하라. 이때 반드시 다음 배열을 이용하고 반복문으로 작성하라.

 

[소스코드]

 

 

[3장 7번]

정수를 10개 저장하는 배열을 만들고 1에서 10까지 범위의 정수를 랜덤하게 생성하여 배열에 저장하라. 그리고 배열에 든 숫자들과 평균을 출력하라.

 

[소스코드]

 

 

[3장 8번]

정수를 몇 개 저장할지 키보드로부터 개수를 입력받아(100보다 작은 개수) 정수 배열을 생성하고, 이곳에 1에서 100까지 범위의 정수를 랜덤하게 삽입하라. 배열에는 같은 수가 없도록 하고 배열을 출력하라.

 

[소스코드]

 

 

[3장 9번]

4 x 4의 2차원 배열을 만들고 이곳에 1에서 10까지 범위의 정수를 랜덤하게 생성하여 정수 16개를 배열에 저장하고, 2차원 배열을 화면에 출력하라.

 

[소스코드]

 

 

[3장 10번]

4 x 4의 2차원 배열을 만들고 이곳에 1에서 10까지 범위의 정수를 10개만 랜덤하게 생성하여 임의의 위치에 삽입하라. 동일한 정수가 있어도 상관없다. 나머지 6개의 숫자는 모두 0이다. 만들어진 2차원 배열을 화면에 출력하라.

 

[소스코드]

 

 

[3장 11번]

다음과 같이 작동하는 Average.java를 작성하라. 명령행 인자는 모두 정수만 사용되며 정수들의 평균을 출력한다. 다음 화면은 컴파일된 Average.class 파일을 c:\Temp 디렉터리에 복사한 뒤 실행한 경우이다. 원본 Average.class 파일은 이클립스의 프로젝트 폴더 밑에 bin 폴더에 있다.

 

[소스코드]

 

 

[3장 12번]

다음과 같이 작동하는 Add.java를 작성하라. 명령행 인자 중에서 정수 만을 골라 합을 구하라. 다음 화면은 Add.class 파일을 c:\Temp 디렉터리에 복사한 뒤 실행한 경우이다. 원본 Add.class 파일은 이클립스 프로젝트 폴더 밑에 bin 폴더에 있다.

 

[소스코드]

 

 

[3장 13번]

반복문을 이용하여 369게임에서 박수를 쳐야 하는 경우를 순서대로 화면에 출력해보자. 1부터 시작하며 99까지만 한다. 실행 사례는 다음과 같다.3박수 짝

 

[소스코드]

 

 

 

[3장 14번]

다음 코드와 같이 과목과 점수가 짝을 이루도록 2개의 배열을 작성하라.

 

String course[] = {"Java", "C++", "HTML5", "컴퓨터구조", "안드로이드"};
int score[] = {95, 88, 76, 62, 55};

 

그리고 다음 예시와 같이 과목 이름을 입력받아 점수를 출력하는 프로그램을 작성하라. "그만"을 입력받으면 종료한다. (Java는 인덱스 0에 있으므로 score[0]을 출력)

 

과목 이름 >> Jaba
없는 과목입니다.
과목 이름 >> Java
Java의 점수는 95
과목 이름 >> 안드로이드
안드로이드의 점수는 55
과목 이름 >> 그만

 

[소스코드]

 

 

[3장 15번]

다음은 2개의 정수를 입력 받아 곱을 구하는 Muliply 클래스이다.

 

import java.util.Scanner;


public class Multiply {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("곱하고자 하는 두 수 입력 >> ");
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        System.out.print(n+"x",+m+"="+n*m);
       scanner.close();
    }
}

 

다음과 같이 실행할 때 프로그램은 10과 5를 곱해 50을 잘 출력한다.

 

곱하고자 하는 두 수 입력 >> 10 5
10x5=50

 

하지만, 다음과 같이 실수를 입력하였을 때, 예외가 발생한다.

 

곱하고자 하는 두 수 입력 >> 2.5 4
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java_study3_15.Multiply.main(Multiply.java:11)

 

다음과 같이 실수가 입력되면 정수를 다시 입력하도록 하여 예외 없이 정상적으로 처리되도록 예외 처리 코드를 삽입하여 Multiply 클래스를 수정하라.

 

곱하고자 하는 두 수 입력 >> 2.5 4
실수는 입력하면 안됩니다.
곱하고자 하는 두 수 입력 >> 4 3.5
실수는 입력하면 안됩니다.
곱하고자 하는 두 수 입력 >> 4 3
4x3=12

 

[소스코드]

 

 

[3장 16번]

컴퓨터와 독자 사이의 가위 바위 보 게임을 만들어보자. 예시는 다음 그림과 같다. 독자부터 먼저 시작한다. 독자가 가위 바위 보 중 하나를 입력하고 <Enter>키를 치면, 프로그램은 가위 바위 보 중에서 랜덤하게 하나를 선택하고 컴퓨터가 낸 것으로 한다. 독자가 입력한 값과 랜덤하게 선택한 값을 비교하여 누가 이겼는지 판단한다. 독자가 가위 바위 보 대신 "그만"을 입력하면 게임을 끝난다.

 

[소스코드]

반응형

댓글