ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java 문제
    Back end/Java 기본 2023. 12. 17. 19:45

    문제1 : 반복문 활용

    요구사항: 1부터 10까지의 숫자 중에서 짝수만 출력하는 자바 프로그램을 작성하세요.

    예시 코드:

    public class EvenNumbers {
        public static void main(String[] args) {
            for (int i = 2; i <= 10; i += 2) {
                System.out.println(i);
            }
        }
    }

     

    문제2 : 메서드 작성

    요구사항: 두 개의 정수를 입력받아 두 수의 합을 반환하는 메서드를 작성하세요.

    예시 코드:

    public class SumCalculator {
        public static void main(String[] args) {
            int num1 = 5;
            int num2 = 7;
            int result = calculateSum(num1, num2);
            System.out.println("Sum: " + result);
        }

        public static int calculateSum(int a, int b) {
            return a + b;
        }
    }

     

    문제3 : 클래스와 상속

    요구사항: 도형을 나타내는 Shape 클래스를 작성하고, 이를 상속받는 Circle 클래스를 만드세요. 원의 반지름을 입력받아 원의 넓이를 계산하는 메서드를 추가하세요.

    예시 코드:

    public class Main {
        public static void main(String[] args) {
            // Circle 객체 생성 (반지름이 5.0인 원)
            Circle circle = new Circle(5.0);

            // 원의 넓이 계산
            double area = circle.calculateArea();

            // 결과 출력
            System.out.println("원의 넓이: " + area);
        }
    }




    class Shape {
        // 필요한 필드나 메서드를 추가할 수 있음
    }

    class Circle extends Shape {
        double radius;

        public Circle(double radius) {
            this.radius = radius;
        }

        public double calculateArea() {
            return Math.PI * radius * radius;
        }
    }

     

     문제4 : 예외 처리

    요구사항: 숫자로 변환 가능한 문자열을 입력받아 변환한 후, 그 숫자를 2로 나누어 출력하는 프로그램을 작성하세요. 예외가 발생하면 적절한 메시지를 출력하세요.

    import java.util.Scanner;

    public class NumberDivision {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("숫자를 입력하세요: ");
            String input = scanner.nextLine();

            try {
                int number = Integer.parseInt(input);
                System.out.println("나눈 결과: " + (number / 2));
            } catch (NumberFormatException e) {
                System.err.println("숫자로 변환할 수 없는 입력입니다.");
            }
        }
    }

     

     

    문제5  자바 기본 문법 및 데이터 타입:

    • 문제: 두 정수를 입력받아 합을 출력하는 자바 프로그램을 작성하세요.
    import java.util.Scanner;

    public class SumExample {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);

           System.out.print ("첫 번째 정수를 입력하세요: ");
            int num1 = scanner.nextInt();

            System.out.print("두 번째 정수를 입력하세요: ");
            int num2 = scanner.nextInt();

            int sum = num1 + num2;
            System.out.println("두 정수의 합: " + sum);

            scanner.close();
        }
    }

     

     

     

    문제6 조건문 및 제어문:

    • 문제: 주어진 숫자가 홀수인지 짝수인지 판별하는 자바 프로그램을 작성하세요
    import java.util.Scanner;

    public class OddEvenExample {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);

             System.out.print ("숫자를 입력하세요: ");
            int number = scanner.nextInt();

            if (number % 2 == 0) {
                System.out.println("짝수입니다.");
            } else {
                System.out.println("홀수입니다.");
            }

            scanner.close();
        }
    }

     

     

    - 2개의 숫자를 홀수 짝수 판별 메소드를 추가해봄.

    public class OddEvenExample {
        public static void main(String[] args) {
            int a = 1;
            int b = 2;

            // oddEven 메서드 호출
            String resultA = oddEven(a);
            String resultB = oddEven(b);

            // 결과 출력
            System.out.println("주어진 숫자 " + a + "은(는) " + resultA + "입니다");
            System.out.println("주어진 숫자 " + b + "은(는) " + resultB + "입니다");
        }

        // 숫자가 홀수인지 짝수인지 판별하는 메서드
        public static String oddEven(int num) {
            if (num % 2 == 0) {
                return "짝수";
            } else {
                return "홀수";
            }
        }
    }

     

     

     

    문제7  배열과 리스트:

    문제: 주어진 배열에서 최댓값을 찾아 출력하는 자바 프로그램을 작성하세요.

     

    public class MaxArrayExample {
        public static void main(String[] args) {
            int[] numbers = {5, 8, 2, 10, 7};
            int max = numbers[0];

            for (int i = 1; i < numbers.length; i++) {
                if (numbers[i] > max) {
                    max = numbers[i];
                }
            }

            System.out.println("배열의 최댓값: " + max);
        }
    }

     

     

    문제8  객체 지향 프로그래밍:

    문제: 간단한 클래스와 상속을 이용하여 동물과 새를 모델링한 자바 프로그램을 작성하세요.

     

    class Animal {
        void eat() {
            System.out.println("동물이 먹습니다.");
        }
    }

    class Bird extends Animal {
        void fly() {
            System.out.println("새가 날아갑니다.");
        }
    }

    public class OOPExample {
        public static void main(String[] args) {
            Bird myBird = new Bird();
            myBird.eat();
            myBird.fly();
        }
    }

     

     

     

    ============================================================================================

     

    문제 9: 기본 문법 이해

    // 아래 코드의 출력 결과는 무엇인가요?
    public class Example1 {
        public static void main(String[] args) {
            int x = 5;
            int y = x++ + ++x;
            System.out.println(y);
        }
    }

     

     

    - 정답

    문제 10: 객체지향 프로그래밍

    // 다음 코드에서 Animal 클래스를 상속받은 Dog 클래스를 작성하세요.
    class Animal {
        // Animal 클래스의 멤버들
    }

    // Dog 클래스 작성

     

     

    문제 11: 예외 처리

    // 아래 코드에서 발생할 수 있는 예외를 처리하는 코드를 작성하세요.
    public class Example3 {
        public static void main(String[] args) {
            int[] numbers = {1, 2, 3};
            System.out.println(numbers[5]);
        }
    }

     

    - 정답

    더보기

    public class Example3 {
        public static void main(String[] args) {
            int[] numbers = {1, 2, 3};

            try {
                // 예외가 발생할 수 있는 코드 블록
                System.out.println(numbers[5]);
            } catch (ArrayIndexOutOfBoundsException e) {
                // 예외가 발생했을 때 실행할 코드 블록
                System.err.println("배열 인덱스가 범위를 벗어났습니다.");
                e.printStackTrace(); // 예외 정보를 출력
            }
        }
    }

     

     

    문제 12: 쓰레드

    // 두 개의 스레드를 생성하고, 각각 1부터 10까지의 숫자를 출력하는 코드를 작성하세요.
    // 예를 들어, 스레드 1은 1,2,3,...,10을 출력하고, 스레드 2는 1,2,3,...,10을 출력합니다.

     

    - 정답

    더보기

    public class NumberPrintingThread implements Runnable {
        private final int threadNumber;

        public NumberPrintingThread(int threadNumber) {
            this.threadNumber = threadNumber;
        }

        @Override // 써도 되고 안써도됨~
        public void run() {
            for (int i = 1; i <= 10; i++) {
                System.out.println("Thread " + threadNumber + ": " + i);

                // 일시 정지 (optional)
                try {
                    Thread.sleep(100); // 100밀리초 동안 일시 정지
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }

        public static void main(String[] args) {
            // 두 개의 스레드 생성
            Thread thread1 = new Thread(new NumberPrintingThread(1));
            Thread thread2 = new Thread(new NumberPrintingThread(2));

            // 스레드 시작
            thread1.start();
            thread2.start();
        }
    }

     

     

    문제 13: 컬렉션 프레임워크

    // ArrayList를 이용하여 문자열을 저장하고, 저장된 문자열을 반대 순서로 출력하는 코드를 작성하세요.
    // 예를 들어, "A", "B", "C"를 저장하고, "C", "B", "A" 순서로 출력되어야 합니다.

     

     

    - 정답

    더보기

    import java.util.ArrayList;
    import java.util.Collections;

    public class ReverseStringArrayList {
        public static void main(String[] args) {
            // ArrayList 생성 및 문자열 추가
            ArrayList<String> stringList = new ArrayList<>();
            stringList.add("A");
            stringList.add("B");
            stringList.add("C");

            // 저장된 순서로 출력
            System.out.println("저장된 순서:");
            for (String str : stringList) {
                System.out.println(str);
            }

     

            // 다른 for문 
           // for (int i = 0; i < stringList.size(); i++) {
           //String result = stringList.get(i);
           // System.out.println(result);

      

            // ArrayList를 역순으로 정렬하여 출력
            Collections.reverse(stringList);

            System.out.println("\n반대 순서:");
            for (String str : stringList) {
                System.out.println(str);
            }
        }
    }

     

     

    문제 14  조건문과 반복문 활용:

    • if-else 조건문과 for 반복문을 사용하여 1부터 10까지의 홀수를 출력하는 Java 코드를 작성하세요.

    - 정답

    더보기

    public class OddNumbers {
        public static void main(String[] args) {
            for (int i = 1; i <= 10; i++) {
                if (i % 2 != 0) {
                    System.out.println(i);
                }
            }
        }
    }

     

     

    문제 15 아래의 코드에서 "Animal" 클래스를 상속받은 "Dog" 클래스를 정의하고, main 메소드에서 "Dog" 클래스의 인스턴스를 생성하여 이름과 나이를 출력하세요.

     

    - 정답

    더보기

    public class TestClass {
        public static void main(String[] args) {
            // 여기에 Dog 클래스의 인스턴스를 생성하고 이름과 나이를 출력하는 코드를 작성하세요.
            Dog dog = new Dog("코코", 3);
            System.out.println("이름: " + dog.name + ", 나이: " + dog.age);
        }
    }

    class Animal {
        // Animal 클래스의 멤버 변수와 메소드를 정의할 수 있습니다.
    }

    class Dog {
        String name;
        int age;

        public Dog(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }

     

     

    문제 16 : 다음은 배열을 사용하는 코드입니다. 이 코드를 실행하면서 배열의 합계를 계산하고 출력하는 코드를 작성하세요.

    더보기

    public class TestClass {
        public static void main(String[] args) {
            int[] numbers = {1, 2, 3, 4, 5};
            // 여기에 배열의 합계를 계산하고 출력하는 코드를 작성하세요.
           int sum = 0; 
           for (int i = 0; i <=numbers.length; i++}
           sum += numbers[i]

          system.out.println("배열의 합계는" + sum + "입니다")
    }

     

    문제 17       변수와 연산자:

    • 두 개의 정수 변수 a와 b를 선언하고, a를 b로 나눈 몫을 출력하는 프로그램을 작성하세요.

      -  정답 

    더보기

     public class Example3 {
        public static void main(String[] args) {
            int a = 4;
            int b = 2;
            
            try {
                int result = b / a;
                System.out.println("나누기 값은 " + result + "입니다.");
            } catch (ArithmeticException e) {
                System.err.println("0으로 나눌 수 없습니다. 예외 메시지: " + e.getMessage());
            }
        }
    }

    문제 18 조건문과 논리 연산자:

    사용자로부터 입력받은 정수가 3의 배수이면서 5의 배수인지 판별하여 결과를 출력하는 프로그램을 작성하세요.

      -  정답 

    더보기

    public class Example3 {
        public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
         int result =  scanner.nextInt();
         
           if(result % 3 == 0){
           system.out.println("3의 배수입니다.")
           } else if( result % 5 == 0){
            system.out.println("5의 배수입니다.")
           } else{
             system.out.println("3과 5를 제외한 배수입니다");
           }

          system.out.println("결과는"+result +"입니다);

          scanner.close(); // Scanner를 사용한 후에는 닫아주는 것이 좋습니다.

         
        }
    }

    문제 19 반복문과 배열:

    1부터 100까지의 숫자 중에서 7의 배수를 배열에 저장하고, 해당 배열의 요소를 출력하는 프로그램을 작성하세요.

     

    -정답 

    더보기
    public class Example3 {
        public static void main(String[] args) {
            // 배열을 생성할 때 크기를 지정해야 합니다.
            int[] seven = new int[100 / 7];

            // for 문 안에서 사용할 변수 및 결과 변수 초기화
            int sevenResult = 0;

            for (int i = 1; i <= 100; i++) {
                // 7의 배수를 배열에 저장
                if (i % 7 == 0) {
                    sevenResult = i;
                    seven[i / 7 - 1] = sevenResult;
                }
            }

            // 1부터 100까지의 7의 배수를 출력
            Systehttp://m.out.print("1부터 100까지의 7의 배수를 출력합니다: ");
            for (int value : seven) {
                Systehttp://m.out.print(value + " ");
            }
        }
    }

     

    문제 21  메소드와 클래스:
    두 개의 정수를 매개변수로 받아서 곱한 결과를 반환하는 메소드를 가진 클래스를 작성하고, 이를 활용하여 결과를 출력하세요.

    더보기

    public class Example3 {
        public static void main(String[] args) {
            int a = 2;
            int b = 3;

            int result = multiple(a, b);
            System.out.println(result);
        }

        public static int multiple(int a, int b) {
            return a * b;
        }
    }

     

     

    문제 22  예외 처리:
    사용자로부터 입력받은 문자열을 정수로 변환하여 출력하는 프로그램을 작성하되, 사용자가 잘못된 입력을 할 경우 예외 처리하여 안내 메시지를 출력하세요.

     

    더보기

    import java.util.Scanner;

    public class Example {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);

            Systehttp://m.out.print("이름을 입력하세요: ");
            String name = scanner.nextLine();

            System.out.println("안녕하세요, " + name + "님!");
            
            scanner.close();
        }
    }

     

     

    문제 23  클래스 상속:
    동물을 나타내는 부모 클래스와 각각의 동물을 나타내는 자식 클래스를 작성하고, 자식 클래스의 인스턴스를 생성하여 속성을 출력하는 프로그램을 작성하세요.

     

    더보기

    public class Example3 {
        public static void main(String[] args) {
            Animal animal = new Animal("강아지");
            System.out.println(animal.getName()); // 수정: name 속성을 출력하도록 수정

            Child child = new Child("강아지", "Dog"); // 수정: 인스턴스 생성 시 부모 클래스의 이름과 자식 클래스의 종을 모두 전달
            child.printSpecies(); // 수정: 자식 클래스의 속성을 출력하도록 수정
        }
    }

    class Animal {
        private String name; // 수정: 접근 제어자를 private으로 변경하고, getter 메서드 추가

        public Animal(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }

    class Child extends Animal {
        private String species;

        public Child(String name, String species) {
            super(name);
            this.species = species;
        }

        public void printSpecies() {
            System.out.println("자식 클래스의 이름은 " + getName() + "이고, 종은 " + species + "입니다");
        }
    }

     

    문제 24 인터페이스와 다형성:
    도형을 나타내는 인터페이스를 정의하고, 이를 구현하는 원과 사각형 클래스를 작성하세요. 각 도형의 면적을 계산하여 출력하는 프로그램을 작성하세요.

    public class ShapeExample {
        public static void main(String[] args) {
            // 원 객체 생성
            Circle circle = new Circle(5.0);

            // 사각형 객체 생성
            Rectangle rectangle = new Rectangle(4.0, 6.0);

            // 면적 계산 및 출력
            System.out.println("원의 면적: " + circle.calculateArea());
            System.out.println("사각형의 면적: " + rectangle.calculateArea());
        }
    }

    // 도형을 나타내는 인터페이스
    interface Shape {
        double calculateArea();
    }

    // 원 클래스 구현
    class Circle implements Shape {
        private double radius;

        public Circle(double radius) {
            this.radius = radius;
        }

        @Override
        public double calculateArea() {
            return Math.PI * Math.pow(radius, 2);
        }
    }

    // 사각형 클래스 구현
    class Rectangle implements Shape {
        private double width;
        private double height;

        public Rectangle(double width, double height) {
            this.width = width;
            this.height = height;
        }

        @Override
        public double calculateArea() {
            return width * height;
        }
    }

     

     

     

    문제 25  컬렉션 활용:
    문자열을 저장하는 ArrayList를 생성하고, 사용자로부터 입력받은 문자열을 리스트에 추가하는 프로그램을 작성하세요.

    더보기

    import java.util.ArrayList;
    import java.util.Scanner;

    public class ArrayListExample {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<String>();

            // 사용자로부터 입력받은 문자열을 리스트에 추가
            Scanner scanner = new Scanner(System.in);
            System.out.println("문자열을 입력하세요 (종료하려면 'exit' 입력):");

            while (true) {
                String userInput = scanner.nextLine();
                
                // 'exit' 입력 시 반복문 종료
                if (userInput.equals("exit")) {
                    break;
                }

                // 리스트에 문자열 추가
                list.add(userInput);
            }

            // 리스트 출력
            System.out.println("출력: " + list);

            scanner.close();
        }
    }

     
     

    'Back end > Java 기본' 카테고리의 다른 글

    자바파일 compile 방법.  (0) 2024.07.01
    JNI 와 PURE JAVA?  (0) 2024.06.26
    for문을 이용한 구구단 출력  (0) 2023.11.17
    윤년 문제 (if문)  (0) 2023.11.17
    메소드 구조 예시  (0) 2023.11.17
Designed by Tistory.