-
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);
}
}- 정답
더보기12
문제 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