ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이것이 자바다 확인문제 (4장 조건문과 반복문)
    JAVA 2018. 10. 17. 19:39

    1. 조건문과 반복문의 종류를 괄호 (  ) 속에 넣어 보세요.


    조건문: ( if ), ( switch )

    반복문: ( for ), ( while ), ( do-while )




    2. 조건문과 반목문을 설명한 것 중 틀린 것은 무엇입니까?

    1) if문은 조건식의 결과에 따라 실행 흐름을 달리할 수 있다.

    2) switch문에서 사용할 수 있는 변수의 타입은 int, double이 될 수 있다.

    3) for문은 카운터 변수로 지정한 횟수만큼 반복시킬 때 사용할 수 있다.

    4) break문은 switch문, for문, while문을 종료할 때 사용할 수 있다.


    답: 2)


    p.119

    자바 6까지는 switch문의 괄호에는 정수 타입(byte, char, short, int, long) 변수나 정수값을 산출하는 연산식만 올 수 있었다. 자바 7부터는 String 타입의 변수도 올 수 있다.




    3. for문을 이용해서 1부터 100까지 정수 중에서 3의 배수의 총합을 구하는 코드를 작성해보세요.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Exercise03 {
        public static void main(String[] args) {
            int sum = 0;
            for (int i = 1; i <= 100; i++) {
                if (i % 3)
                    sum += i;
            }
            System.out.println("3의 배수의 합: " + sum);
        }
    }
    cs



    4. while문과 Math.random() 메소드를 이용해서 두 개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성해보세요. 눈의 합이 5가 되는 조합은 (1, 4), (4, 1), (2, 3), (3, 2) 입니다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Exercise04 {
        public static void main(String[] args) {
            int num1 = 0;
            int num2 = 0;
     
            while(num1 + num2 != 5) {
                num1 = (int)(Math.random() * 6+ 1;
                num2 = (int)(Math.random() * 6+ 1;
                System.out.println("(" + num1 + ", " + num2 + ")");
            }
        }
    }
    cs



    * Math.random() 메소드를 활용하여 임의의 정수 뽑기 (p.113)


    Math.random(): 0.0과 1.0 사이에 속하는 double 타입의 난수 하나를 리턴 (1.0은 포함되지 않음)

    0.0 <= Math.random() < 1.0


    각 변에 범위 수를 곱하여 범위 내에 속하는 하나의 double 타입 값을 얻음

    0.0 * 6 <= Mathi.random() < 1.0*6


    각 변을 int 타입으로 강제 타입 변환하여 하나의 정수 값을 얻어냄

    (int) 0.0 <= (int) Mathi.random() < (int) 1.0*6


    각 변에 1을 더하면 1~6까지 정수 중에서 하나의 정수를 얻을 수 있음

    0+1 <= (int) Mathi.random() + 1 < 6+1






    5. 중첩 for문을 이용하여 방정식 4x + 5y = 60의 모든 해를 구해서 (x, y) 형태로 출력해보세요. 단, x와 y는 10 이하의 자연수입니다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Exercise05 {
        public static void main(String[] args) {
            for(int x = 1; x <= 10; x++) {
                for(int y = 1; y <= 10;  y++) {
                    if((4 * x) + (5 * y) == 60)
                        System.out.println("(" + x + ", " + y + ")");
                }
            }
        }
    }
    cs



    실행 결과

    (5, 8)

    (10, 4)





    6. for문을 이용해서 실행 결과와 같은 삼각형을 출력하는 코드를 작성해보세요


    실행 결과

    *

    **

    ***

    ****

    *****


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class Exercise06 {
        public static void main(String[] args) {
            for(int i = 1; i <=5; i++) {
                for(int j = 1; j <=i; j++) {
                    System.out.print("*");
                }
                System.out.println();
            }
        }
    }
    cs





    7. while문과 Scanner를 이용해서 키보드로부터 입력된 데이터로 예금, 출금, 조회, 종료 기능을 제공하는 코드를 작성해보세요. 이 프로그램을 실행시키면 다음과 같은 실행 결과가 나와야 합니다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import java.util.Scanner;
     
    public class Exercise07 {
        public static void main(String[] args) {
            boolean run = true;
            
            int balance = 0;
     
            Scanner scanner = new Scanner(System.in);
     
            while(run) {
                System.out.println("-----------------------------------");
                System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
                System.out.println("-----------------------------------");
                System.out.println("선택> ");
     
                //작성 위치
     
            }
     
            System.out.println("프로그램 종료");    
        }
    }
    cs

    실행결과

    -----------------------------------

    1.예금 | 2.출금 | 3.잔고 | 4.종료

    -----------------------------------

    선택> 1

    예금액>10000


    -----------------------------------

    1.예금 | 2.출금 | 3.잔고 | 4.종료

    -----------------------------------

    선택> 2

    출금액>2000


    -----------------------------------

    1.예금 | 2.출금 | 3.잔고 | 4.종료

    -----------------------------------

    선택> 3

    잔고>8000


    -----------------------------------

    1.예금 | 2.출금 | 3.잔고 | 4.종료

    -----------------------------------

    선택> 4


    프로그램 종료



    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import java.util.Scanner;
     
    public class Exercise07 {
        public static void main(String[] args) {
            boolean run = true;
            
            int balance = 0;
     
            Scanner scanner = new Scanner(System.in);
     
            while(run) {
                System.out.println("-----------------------------------");
                System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
                System.out.println("-----------------------------------");
                System.out.print("선택> ");
                //작성 위치
                int number = scanner.nextInt();
                int money = 0;
     
                switch(number) {
                    case 1:
                     System.out.print("예금액> ");
                        money = scanner.nextInt();
                        balance += money;
                        break;
                    case 2:
                        System.out.print("출금액> ");
                        money = scanner.nextInt();
                        balance -= money;
                        break;
                    case 3:
                        System.out.println("잔고> " + balance);
                        break;
                    case 4:
                        run = false;
                        break;
                }
            }
     
            System.out.println("프로그램 종료");
            scanner.close();    
        }
    }
    cs



    * Scanner 사용법 (p.129)

    Scanner 객체를 생성하고 nextLine() (String 타입), nextInt() (int 타입) 등의 메소드를 호출하면 콘솔에 입력된 문자열(정수)을 읽을 수 있음


    line 14: 정수 1개를 입력받아 number 변수에 저장. switch문의 조건으로 사용됨

    line 23, 28: 정수 1개를 입력받아 money 변수에 저장. 각각 예금액과 출금액으로 사용

    line 41: scanner가 참조하고 있는 System.in 스트림을 닫음 (생략해도 실행 가능하나 경고 메시지 발생)


Designed by Tistory.