JAVA/이론 정리 및 예제

[JAVA/자바] #1_3 변수, 형변환 실습 문제

chaewon 2021. 9. 3. 14:05

1_변수 실습문제

실습 문제에 따라 문제를 풀어보세요 정답은 아래에!

 

변수 실습문제

  • 패키지 생성 : com.kh.example
  • 실행용 클래스 생성 : TestMain.java
    • main() 메소드 포함 : 각 문제별 메서드 실행 테스트함
  • 기능 제공용 클래스 생성 : Example.java

 

실습1

  • 메소드명 : public void example1(){}
  • 실행내용 : 키보드로 정수 두 개를 입력 받아 두 수의 합, 차, 곱
    • 나누기한 몫과 나머지 출력
  • 입력 예
    • 첫 번째 정수 : 23
    • 두 번째 정수 : 7
  • 출력 예 (계산 식)
    • 더하기 결과 : 30 -> (값1 + 값2)
    • 빼기 결과 : 16 -> (값1 - 값2)
    • 곱하기 결과 : 161 -> (값1 * 값2)
    • 나누기한 몫 : 3 -> (값1 / 값2)
    • 나누기한 나머지 : 2 -> (값1 % 값2)


실습2

  • 메소드명 : public void example2(){}
  • 실행 내용 : 키보드로 가로, 세로 값을 실수형으로 입력받아
                  사각형의 면적과 둘레를 계산하여 출력
    • 계산공식 - 면적 : 가로 * 세로
                     둘레 : (가로 + 세로) * 2
  • 입력 예
    • 가로 : 13.5
    • 세로 : 41.7
  • 출력 예
    • 면적 : 562.95
    • 둘레 : 110.4

실습3

  • 메소드명 : public void example3(){}
  • 실행내용 : 영어 문자열 값을 키보드로 입력받아
    • 각 자리의 문자를 출력
  • 입력 예
    • 문자열을 입력하시오 : apple
  • 출력 예 (3개만 출력해 봄)
    • 첫번째 문자 : a
    • 두번째 문자 : p
    • 세번째 문자 : p

 

정답

더보기

TestMain.java

    package com.kh.example;                              //패키지 선언부
    
    public class TestMain {                              //클래스 선언부
    
            public static void main(String[] args) {     //먼저 실행되는 main를 선언한다.
                    Example test = new Example();                                                         //메소드를 불러오기 위해 기능제공용 클래스 Example를 선언한다.
                    test.example1();                     //메소드 example1을 호출
                    test.example2();
                    test.example3();
            }
    }

 

Example.java

package com.kh.example;                  //패키지 선언부

import java.util.Scanner;                //패키지 java.util의 Scanner클래스(외부에서)를 사                                           용하기위해 경로를 주어서 import한다.

public class Example {                   //클래스 선언부 
        public void example1() {         //example1이라는 메소드
                int a;                //RAM에 정수형값을 넣을 수 있는 a라는 공간을 생성한다.
                int b;                                                                                        
                
                Scanner sc = new Scanner(System.in);    //값을 입력 - Scanner클래스
                System.out.print("첫 번째 정수 : ");      //첫 번째 정수를 입력
                a = sc.nextInt();                       //첫 번째 정수를 입력받는다.
                System.out.print("두 번째 정수 : ");        
                b = sc.nextInt();
                System.out.println("더하기 결과 : " + (a + b));                                         //입력한 값의 더하기 결과를  문장과 연결시켜 보여준다.
                System.out.println("빼기 결과 : " + (a - b));
                System.out.println("곱하기 결과 : " + (a * b));                                         //*는 연산순위가 높으므로 연산시 ()를 사용하지 않아도 됨
                System.out.println("나누기한 몫 : " + (a / b));
                System.out.println("나누기한 나머지 : " + (a % b));
        }
        public void example2() {                 //example2이라는 메소드
                double x;                                                                             //Stack에 실수형 값을 넣을 수 있는 x라는 공간을 생성한다.
                double y;
                
                Scanner sc = new Scanner(System.in);                
                System.out.print("가로 : ");
                x = sc.nextDouble();            //가로의 길이를 실수 값으로 입력 받는다.
                System.out.print("세로 : ");
                y = sc.nextDouble();
                System.out.println("면적 : " + (x * y));                                               //입력한 가로와 세로의 길이를 공식에 대입해서  사각형의 면적을 구한다.
                System.out.println("둘레 : " + ((x + y) * 2));
        }
        public void example3() {               //example3이라는 메소드
                String z;                                                                             //문자열 값을 넣을 수 있는 z라는 공간을 생성한다.
                
                Scanner sc = new Scanner(System.in);
                System.out.print("문자열을 입력하시요 : ");
                z = sc.nextLine();                                                    
                System.out.println("첫번째 문자 : " + z.charAt(0));        
                System.out.println("두번째 문자 : " + z.charAt(1));
                System.out.println("세번째 문자 : " + z.charAt(2));
        }
}

 

2_형변환 실습문제

형변환 실습

  • 새 패키지 추가 : com.kh.example2
  • 실행 테스트용 클래스 : TestCasting (main() 포함 : 아래의 메소드 실행 테스트)
  • 기능 제공용 클래스 : CastingSample (각 문제별 메소드 추가함)

 

실습1

public void printUniCode(){}

  • 키보드로 문자하나를 입력받아, 그 문자의 유니코드를 출력되게 함
  • 입력 예 :
    • 문자 입력 : A
  • 출럭 예 :
    • A is unicode : 65

 

실습2

public void calculatorScore(){}

  • 실수형으로 국어, 영어, 수학 세 과목의 점수를 입력받아 총점과 평균을 계산해서 출력함
  • 총점과 평균은 정수형으로 처리함
  • 입력 예
    • 국어 : 90.0
    • 영어 : 90.0
    • 수학 : 90.0
  • 출력 예
    • 총점 : 270
    • 평균 : 90

 

정답

더보기

TestCasting.java

package com.kh.example2;                 //패키지 선언부

public class TestCasting {               //클래스 선언부

        public static void main(String[] args) {
                new CastingSample().printUniCode();                                                   //CastingSample 클래스에서 printUnicode 메소드를 호출
                new CastingSample().calculatorScore();
        }
}

 

CastingSample.java

package com.kh.example2;

import java.util.Scanner;

public class CastingSample {
        public void printUniCode() {
                Scanner sc = new Scanner(System.in);
                
                System.out.print("문자 입력 : ");
                char a = sc.next().charAt(0);                                                         //chat는 next()메소드가 없기 때문에 charAt()을 사용하여 문자를 반환한다.
                System.out.println("A is unicode : " + (int)a);                                       //문자의 유니코드를 반환하기 위해서 a에 강제형변환을 해준다.
        }
        public void calculatorScore() {
                Scanner sc = new Scanner(System.in);
                
                System.out.print("국어 : ");
                double lang = sc.nextDouble();                                                        //Scanner클래스의 nextDoble()메소드를 이용해 입력받은 값을 실수형으로 반환한다.
                System.out.print("영어 : ");
                double eng = sc.nextDouble();
                System.out.print("수학 : ");
                double math = sc.nextDouble();
                
                System.out.println("총점 : " + (int)(lang + eng + math));
                System.out.println("평균 : " + (int)((lang + eng + math) / 3));   
        }
}