Back-End/Java

[ JAVA ] Day02 Quiz

oahee 2023. 7. 14. 12:47

[문제1] 두 기억공간의 값을 변경하는 코딩을 하라

public class Ex04 {
	
	public static void main(String[] args) {
		// 두 정수를 저장할 x, y 변수를 선언하고
		// 각각 10, 20으로 초기화하고
		// 출력형식 :     > x=10, y=20 출력...
		
		// 동일한 자료형일 경우에는 콤마(,) 연산자를 사용해서 나열할 수 있다.
		// int x = 10;
		// int y = 20;
		int x=10, y=20;
		System.out.printf("교환 전> x=%d, y=%d\n", x, y);
		
		// 프로그램 상에서 두 기억공간의 값을 교환하려면
		// 반드시 동일한 자료형의 임시기억공간이 필요하다.
		// 왜?
		{
        	int temp = x;
			x = y;
			y = temp;	
        }
		System.out.printf("교환 후> x=%d, y=%d\n", x, y);
		
	} //main

 

---

[문제2] 함수 선언하기 위한 3가지

함수(메서드) 3가지 파악 => 정확히 사용할 수 있다.
1. 함수의 기능(일) 파악
2. 함수가 일처리를 할 때 필요한 값 파악 ( 매개변수, 파라미터, 인자, 인수 )
3. 함수가 일처리를 한 후에 반환(리턴)하는 값 파악 ( 리턴값, 리턴자료형 )

 

---

[문제3] 자료형에 대해 설명 하시오.

자료형 정의, 종류, 

1. 자료형(data type) ?
        값(data)의 종류에 따라 값이 저장될 공간의
                ㄱ. 크기
                ㄴ. 저장형식
        을 정의한 것.
 
2. 기본형 & 참조형
        기본형(Primitive Type) - 8가지
                (1) 숫자형 <- 비실FD로 암기
                        ㄱ. 정수계열 - byte(1 byte), short(2 byte), [ int(4 byte) ], long(8 byte)
                                문자형 - char(2 byte)
                        ㄴ. 실수계열 - float(4 byte), [ double(8 byte) ]
                (2) 논리형 boolean(1 byte) = true, false 조건 사용
                     참조형(Reference Type) - 배열, 클래스, 인터페이스

 

---

[문제4] 아래와 같이 코딩 하시오.

package days02;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Ex17 {
	public static void main(String[] args) throws IOException {

		// 이름, 국어, 영어, 수학을 입력받아서
		// 총점, 평균을 계산하고
		// [출력형식]
		// 홍길동님은 국어: 89  영어: 78  수학: 56  총점: 000  평균:00.00 이다.
		
		String name;

		byte kor, eng, mat;
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		System.out.print("> 이름을 입력하세요? ");
		name = br.readLine();		

		System.out.print("> 국어 점수를 입력하세요? ");
		kor = Byte.parseByte(br.readLine());

		System.out.print("> 영어 점수를 입력하세요? ");
		eng = Byte.parseByte(br.readLine());
		
		System.out.print("> 수학 점수를 입력하세요? ");
		mat = Byte.parseByte(br.readLine());
		
		// 'kor + eng + mat' 의 값이 int인 이유 : 4bit씩 처리하는 cpu의 효율성 때문에
		short total = (short)(kor + eng + mat);
		
		double avg = total/3.0;
		//double avg = total/3D;  이와같이 사용하여도 double로 형변환 됨
		//double avg = (double)total/3;
		
		System.out.printf("%s님은 국어: %d  영어: %d  수학: %d  총점: %d  평균:%.2f 이다.", name, kor, eng, mat, total, avg);
		
		
	} //main
} //class
package days02;

import java.io.IOException;
import java.util.Scanner;

public class Ex17_02 {
	public static void main(String[] args) throws IOException {

		// 이름, 국어, 영어, 수학을 입력받아서
		// 총점, 평균을 계산하고
		// [출력형식]
		// 홍길동님은 국어: 89  영어: 78  수학: 56  총점: 000  평균:00.00 이다.
		
		String name;

		byte kor, eng, mat;
		
		//BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// Resource leak: 'sc' is never closed
		// 객체를 모두 사용했으면 close 하라는 경고
		Scanner sc = new Scanner(System.in);
		
		System.out.print("> 이름 국어 영어 수학을 차례로 입력하세요? ");
		name = sc.next();		// String
		kor = sc.nextByte();		// byte
		eng = sc.nextByte();	// byte
		mat = sc.nextByte();	// byte
				
		
		// 'kor + eng + mat' 의 값이 int인 이유 : 4bit씩 처리하는 cpu의 효율성 때문에
		short total = (short)(kor + eng + mat);
		
		double avg = total/3.0;
		//double avg = total/3D;  이와같이 사용하여도 double로 형변환 됨
		//double avg = (double)total/3;
		
		System.out.printf("%s님은 국어: %d  영어: %d  수학: %d  총점: %d  평균:%.2f 이다.", name, kor, eng, mat, total, avg);
		
		sc.close();
		
	} //main
} //class

---

키워드(keyword) : 의미가 부여된 예약어

식별자(identifier) : 개발자가 부여한 이름들 (변수명, 클래스, 함수명 등) 

 

---

 변수와 상수 설명
 - 값을 저장하는 메모리상의 저장공간
 - 변수 : 변하는 수, 상수 : 고정된 수

 

상수는 무조건 대문자를 사용하기를 권장한다.
 String firstName 변수
 String FIRST_NAME 상수, MAX_VALUE, MIN_VALUE

 

리터럴  :  1  true  'A'  3.14
             : 값 자체를 나타냄, 상수
             : 기억공간(메모리)은 아님.