다라다라V
article thumbnail
728x90
반응형

패키지명은 원하는 대로 변경가능합니다.

💡 

다음 프로그램에 대해 물음에 답하라?

int sum=0, i=0;
while (i < 100) {
    sum = sum + i;
    i += 2;
)
System.out.println(sum);

 

(1) 무엇을 계산하는 코드이며 실행 결과 출력되는 내용은?

(2) 위의 코드를 main() 메소드로 만들고 WhileTest 클래스로 완성하라.

(3) for 문을 이용하여 동일하게 실행되는 ForTest 클래스를 작성하라.

(4) do-while 문을 이용하여 동일하게 실행되는 DoWhileTest 클래스를 작성하라.

 

 

[정답]

(1) 2450

(2) 

package test.ch03;

public class WhileTest {
    public static void main(String[] args) {
        int sum=0, i=0;
        while (i < 100) {
            sum = sum + i;
            i += 2;
        }
        System.out.println(sum);
    }
}

(3) 

package test.ch03;

public class ForTest {
    public static void main(String[] args) {
        int sum = 0, i = 0;
        for (i = 0; i < 100; i += 2) {
            sum = sum + i;
        }
        System.out.println(sum);
    }
}

(4) 

package test.ch03;

public class DoWhileTest {
    public static void main(String[] args) {
        int sum = 0, i = 0;
        do {
            sum = sum + i;
            i += 2;
        } while (i < 100);
        System.out.println(sum);
    }
}

 

💡 

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

 

int n [][] = {{1}, {1,2,3}, {1}, {1,2,3,4}, {1,2}};

 

[정답] 

public class DaraSolution {
    public static void main(String[] args) {
        int n [][] = {{1}, {1,2,3}, {1}, {1,2,3,4}, {1,2}};
        for (int i = 0; i < n.length; i++) {
            for (int j = 0; j < n[i].length; j++) {
                System.out.print(n[i][j] + " ");
            }
            System.out.println();
        }
    }
}

 

💡 

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

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // Scanner를 이용해 정수 입력받기
        Scanner scanner = new Scanner(System.in);
        System.out.print("정수를 입력하시오>> ");
        int num = scanner.nextInt();

        // 입력받은 정수만큼 역삼각형 출력
        for (int i = 0; i < num; i++) {
            for (int j = 0; j < num - i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

 

💡 

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

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // Scanner를 이용해 정수 입력받기
        Scanner scanner = new Scanner(System.in);
        System.out.print("소문자 알파벳 하나를 입력하시오>> ");
        char c = scanner.next().charAt(0);

        // a~입력받은 소문자 알파벳 -> a 순서로 출력
        for (char i = c; i >= 'a'; i--) {
            for (char j = 'a'; j <= i; j++) {
                System.out.print(j);
            }
            System.out.println();
        }
    }
}

 

💡 

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

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // Scanner를 이용해 정수 입력받기
        Scanner scanner = new Scanner(System.in);
        System.out.print("양의 정수 10개를 입력하시오>> ");

        // 3의 배수만 출력
        for (int i = 0; i < 10; i++) {
            int num = scanner.nextInt();
            if (num % 3 == 0) {
                System.out.print(num + " ");
            }
        }
    }
}

 

 

💡 

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

 

int [] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1}; // 환산할 돈의종류

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 환산할 돈의 종류
        int [] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1};

        // Scanner를 이용해 정수 입력받기
        Scanner scanner = new Scanner(System.in);
        System.out.print("금액을 입력하시오>> ");
        int money = scanner.nextInt();

        // 변환 출력
        for (int i = 0; i < unit.length; i++) {
            int count = money / unit[i];
            money = money % unit[i];
            System.out.println(unit[i] + "원 짜리 : " + count + "개");
        }
    }
}

 

💡 

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

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // 랜덤하게 정수 10개 배열, 합 저장
        int[] arr = new int[10];
        int sum = 0;
        
        for (int i = 0; i < arr.length; i++) {
            // 랜덤 정수 출력
            arr[i] = (int) (Math.random() * 10 + 1);
            System.out.print(arr[i] + " ");
            sum += arr[i];
        }
        System.out.println("\n평균은 " + (double) sum / arr.length);
    }
}

 

💡 

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

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        // Scanner 객체 생성 및 정수 입력 받기
        Scanner scanner = new Scanner(System.in);
        System.out.print("정수 몇개?");
        int num = scanner.nextInt();

        // 입력받은 정수만큼 배열 생성해 랜덤 정수 저장
        int[] arr = new int[num];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int)(Math.random() * 100);
        }

        // 각 배열을 10개 단위로 나누어 출력
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
            if ((i + 1) % 10 == 0) {
                System.out.println();
            }
        }
    }
}

 

💡 

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

 

[정답] 

public class DaraSolution {
    public static void main(String[] args) {
        // 4x4 2차원 배열을 만들고
        int[][] arr = new int[4][4];
        // 1~10 범위 정수 랜덤 생성하고 저장
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j] = (int) (Math.random() * 10) + 1;
            }
        }

        // 2차원 배열 화면에 출력
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }

    }
}

 

 

💡 

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

 

[정답]

public class DaraSolution {
    public static void main(String[] args) {
        // 4x4 2차원 배열을 만들고
        int[][] arr = new int[4][4];

        // 배열에 들어갈 0, 6개 랜덤하게 지정
        for (int i = 0; i < 10; i++) {
            int x = (int)(Math.random() * 4);
            int y = (int)(Math.random() * 4);
            if (arr[x][y] == 0) {
                arr[x][y] = (int)(Math.random() * 10) + 1;
            } else {
                i--;
            }
        }

        // 2차원 배열 화면에 출력
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + "\t");
            }
            System.out.println();
        }

    }
}

 

💡 

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

 

[정답]

package test.ch03;

public class Average {
    public static void main(String[] args) {
        // 입력된 정수가 없을 경우 프로그램 종료
        if (args.length == 0) {
            System.out.println("입력된 정수가 없습니다.");
            System.exit(0);
        }
        
        // 입력된 정수의 평균 계산
        int sum = 0;
        for (String arg : args) {
            sum += Integer.parseInt(arg);
        }
        System.out.println((double) sum / args.length);
    }
}

 

💡 

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

 

[정답] 

package test.ch03;

public class Add {
    public static void main(String[] args) {
        // 입력된 정수가 없을 경우 프로그램 종료
        if (args.length == 0) {
            System.out.println("입력된 정수가 없습니다.");
            System.exit(0);
        }

        // 입력된 정수의 합 계산
        int sum = 0;
        // 정수가 아니면 NumberFormatException 처리
        for (String arg : args) {
            try {
                sum += Integer.parseInt(arg);
            } catch (NumberFormatException e) {
                System.out.println("정수가 아닌 값이 입력되었습니다.");
                System.exit(0);
            }
        }
        System.out.println(sum);
    }
}

 

💡 

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

 

[정답]

public class DaraSolution {
    public static void main(String[] args) {
        int cnt = 0;
        for (int i = 0; i < 100; i++) {
            // 박수 치는 갯수 세기
            // 1의 자리, 10의 자리
            if (i % 10 == 3 || i % 10 == 6 || i % 10 == 9) {
                cnt++;
            }
            if (i / 10 == 3 || i / 10 == 6 || i / 10 == 9) {
                cnt++;
            }

            // 박수 치기
            if (cnt == 1) {
                System.out.println(i + " 박수 짝");
            } else if (cnt == 2) {
                System.out.println(i + " 박수 짝짝");
            }
            cnt = 0;
        }
    }
}

 

💡 

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

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

그리고 다음 예시와 같이 과목 이름을 입력받아 점수를 출력하는 프로그램을 작성하라. 그만 입력받으면 종료한다.

 

[정답]

import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        String course[] = { "Java", "C++", "HTMLS", "컴퓨터구조", "안드로이드" };
        int score[] = {95, 88, 76, 62, 55};

        // 과목 이름을 입력받아 점수를 출력
        Scanner scanner = new Scanner(System.in);

        // 그만이라고 입력받을 때까지 찾기
        while (true) {
            System.out.print("과목 이름>> ");
            String name = scanner.next();

            // 그만이라고 입력받으면 프로그램 종료
            if (name.equals("그만")) {
                System.out.println("프로그램을 종료합니다.");
                break;
            }

            // 과목 이름을 입력받아 점수를 출력
            int i;
            for (i = 0; i < course.length; i++) {
                if (name.equals(course[i])) {
                    System.out.println(course[i] + "의 점수는 " + score[i]);
                    break;
                }
            }
            if (i == course.length) {
                System.out.println("없는 과목입니다.");
            }
        }

    }
}

 

 

💡 

 

[정답]

import java.util.InputMismatchException;
import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("곱하고자 하는 두 정수 >> ");

        while(true) {
            try {
                int a = scanner.nextInt();
                int b = scanner.nextInt();
                System.out.println(a+"*"+b+"="+a*b);
                break;
            }
            catch (InputMismatchException e) {
                System.out.println("정수를 입력하세요");
                scanner.next();
            }
        }
    }
}

 

💡

 

[정답]

import java.util.InputMismatchException;
import java.util.Scanner;

public class DaraSolution {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str[] = {"가위", "바위", "보"};

        // 그만이라고 입력할 때까지 가위바위보 게임 진행
        while (true) {
            System.out.print("가위바위보!>>");
            String user = scanner.next();
            
            // 사용자가 그만이라고 입력하면 게임 종료
            if (user.equals("그만")) {
                System.out.println("게임을 종료합니다...");
                break;
            }
            
            int n = (int) (Math.random() * 3); // 0, 1, 2 중 하나
            System.out.print("사용자: " + user + ", 컴퓨터: " + str[n] + ", ");
            
            // 가위바위보 승패 결정
            if (user.equals("가위")) {
                if (str[n].equals("가위")) {
                    System.out.println("비겼습니다.");
                } else if (str[n].equals("바위")) {
                    System.out.println("사용자가 졌습니다.");
                } else {
                    System.out.println("사용자가 이겼습니다.");
                }
            } else if (user.equals("바위")) {
                if (str[n].equals("가위")) {
                    System.out.println("사용자가 이겼습니다.");
                } else if (str[n].equals("바위")) {
                    System.out.println("비겼습니다.");
                } else {
                    System.out.println("사용자가 졌습니다.");
                }
            } else if (user.equals("보")) {
                if (str[n].equals("가위")) {
                    System.out.println("사용자가 졌습니다.");
                } else if (str[n].equals("바위")) {
                    System.out.println("사용자가 이겼습니다.");
                } else {
                    System.out.println("비겼습니다.");
                }
            } else {
                System.out.println("가위, 바위, 보 중에서 입력하세요!");
            }
        }
    }
}
반응형
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!