혼자 공부하는 자바 02장 자바 변수와 타입 확인 문제

2023. 2. 6. 23:00공부/자바

반응형

 

 
혼자 공부하는 자바
혼자 해도 충분하다! 1:1 과외하듯 배우는 자바 프로그래밍 자습서 (JAVA 8 &11 지원) 이 책은 독학으로 자바를 배우는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’ ‘어떻게’ 학습해야 할지 조차 모르는 입문자의 막연한 마음을 살펴, 과외 선생님이 알려주듯 친절하게, 그러나 핵심적인 내용만 콕콕 집어준다. 책의 첫 페이지를 펼쳐서 마지막 페이지를 덮을 때까지, 혼자서도 충분히 자바를 배울 수 있다는 자신감과 확신이 계속될 것이다! 20명의 베타리더 검증으로, ‘함께 만든’ 입문자 맞춤형 도서 20명의 베타리더와 함께 구성하여 입문자에게 맞는 난이도, 분량, 학습 요소 등을 적극 반영했다. 어려운 용어와 개념은 한번 더 풀어 쓰고, 복잡한 설명은 눈에 잘 들어오는 그림으로 풀어 냈다. ‘혼자 공부해본’ 여러 입문자의 초심과 눈높이가 책 곳곳에 반영된 것이 이 책의 가장 큰 장점이다.
저자
신용권
출판
한빛미디어
출판일
2019.06.10

 

<혼자 공부하는 자바> 신용권 저, 한빛 미디어 출판(2019.06.10)

 

※ 직접 풀이한 문제

 

02-1 확인 문제 057p

 

02-1-1 OX문제

  1. o
  2. o
  3. o
  4. x - 변수의 초기값이 정해져야 읽을 수 있다.

02-1-2 OX문제

  1. o
  2. x - 숫자로 시작할 수 없다.
  3. x - 클래스를 선언하는 예약어
  4. o
  5. o
  6. x - 정수형을 나타내는 예약어

02-1-3 컴파일 에러가 나타내는 코드와 이유

  • ④ - score2가 초기화되지 않았기 때무에 읽을 수 없음

02-1-4 컴파일 에러가 나타나는 위치와 이유

  • v1=v2+v3 : v3가 선언된 범위는 바로 윗줄의 중괄호}에 의해 끝났다.
int v1=0;
if(true){
	int v2=0;
	if(true){
		int v3=0;
		v1=1;
		v2=1;
		v3=1;
	}
	v1=v2+v3; // v3가 선언된 범위는 바로 위에 줄 중괄호}에 의해 끝났다.
}
System.out.println(v1);

 

02-2 확인 문제 070p

 

02-2-1 빈칸 채우기

구분  1byte  2byte  4byte  8byte
정수 타입 byte char    
short int long    
실수 타입     float double
논리 타입 boolean      

02-2-2 OX문제

  1. x - byte는 양수 128까지 가능 200은 불가
  2. x - char는 문자 하나만 저장가능
  3. o
  4. x - 정수 리터럴은 int형이기 때문에 뒤에 ‘l’이나 ‘L’을 붙여야 함.
  5. x - 상수 리터럴은 double형 취급이기 때문에 뒤에 ‘f’나 ‘F’을 붙여야 함
  6. o
  7. x - 문자열 안에 큰 따옴표를 표시하기 위해서는 \”라고 해야함
  8. x - boolean형 값으로는 true나 false만 저장할 수 있음
  9. x - 정수형에 자료형에 지수표기법으로 된 숫자는 저장불가
  10. x - 1e2f는 float형의 범위를 넘어간 값

02-2-3 출력되는 내용

자바는
재밌는 "프로그래밍" 언어
입니다.

02-2-4 컴파일 에러 이유

  • 2e-350는 double형이 저장할 수 있는 범위 초과

02-2-5 출력 내용

출발합니다.

 

 

02-3 확인 문제 085p

02-3-1 컴파일 에러가 발생하는 것을 고르시오.

  • ③ short shortValue=charValue; 
  • char와 short는 2바이트지만 short는 음수를 표현할 수 있으므로 최고값이 char보다 적다

02-3-2 컴파일 에러가 발생하는 것을 고르시오.

  • ④ char var=(char) strValue;
  • 문자열을 char 타입으로 강제 형변환 할 수 없음

02-3-3 컴파일 에러가 발생하는 것은 무엇입니까?

  • ① byte result=byteValue+byteValue;
  • 정수형 간의 연산은 int형으로 변환되기 때문에 byte형의 result 변수에 저장할 수 없다.

02-3-4 컴파일 에러가 발생하는 위치와 이유를 설명해보세요.

  • short result=s1+s2
  • 정수형 간의 연산은 int형으로 변환되어 연산하기 때문에 결과도 int형으로 나와 short형의 result 변수에 저장할 수 없다.

02-3-5 컴파일 에러가 발생했습니다. 무엇이 문제이고, 어떻게 수정하면 될까요?

  • 정수형 간의 연산은 int형으로 변환되어 연산하기 때문에 결과도 int형으로 나온다. 따라서 char형 변수인 c2에 c1+1 값을 저장할 수 없다. char c2=(char)(c1+1);

02-3-6 빈칸에 들어갈 타입은 무엇이며, 출력되는 결과와 그 이유를 설명해보세요.

  • 빈칸은 int
  • 출력 결과는 2
  • 이유는 정수 5를 정수 2로 나누면 몫 2와 나머지 1이 나오기 때문에 2가 나온다. 2.5가 아닌 이유는 피연산자 모두 int라서 정수형 연산이다.

02-3-7 6번 문제에서 출력되는 결과로 2.5

  • ① double
  • ②  (double) x/y;
// answer
int x=5;
iut y=2;
double result= (double) x/y;
System.out.println(result);

02-3-8 빈칸에 들어갈 코드를 작성

// answer
package sec03.verify.exam08;

public class Example {
	public static void main(String[] args) {
		double var1=3.5;
		double var2=2.7;
		int result= (int)(var1+var2);
		System.out.println(result);
	}
}

02-3-9 빈칸에 들어갈 코드를 작성해보세요.

// answer
package sec03.verify.exam09;

public class Example {
	public static void main(String[] args) {
		long var1=2L;
		float var2=1.8f;
		double var3=2.5;
		String var4="3.9";
		int result=(int) var1 + (int) var2 + (int)( var3+Double.parseDouble(var4) );
		System.out.println(result);
	}
}

02-3-10 출력 결과를 적어 보세요.

5
23
23

02-3-11 알맞은 코드를 작성해보세요.

// answer
byte value = Byte.parseByte("10");
int value = Integer.parseInt("1000");
float value = Float.parseFloat("20.5");
double value = Double.parseDouble("3.14159");

 

02-4 확인 문제 098p

 

02-4-1 빈칸 코드 작성

package sec04.verify.exam01;

public class Example {
	public static void main(String[] args) {
		String name="김자바";
		int age=25;
		String tel1="010",tel2="123",tel3="4567";
		System.out.println("이름 : "+name);
		System.out.print("나이 : "+age+"\n");
		System.out.printf("전화 : %1s-%2s-%3s",tel1,tel2,tel3);
	}
}

02-4-2 빈칸 코드 작성

// answer
package sec04.verify.exam02;

import java.util.Scanner;

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

		System.out.print("첫번째 수 : ");
		String strNum1=scanner.nextLine();

		System.out.print("두번째 수 : ");
		String strNum2=scanner.nextLine();

		int num1=Integer.parseInt(strNum1);;
		int num2=Integer.parseInt(strNum2);;
		int result=num1+num2;
		System.out.println("덧셈 결과 : "+result);
	}
}

02-4-3 코드 작성

// answer
package sec04.verify.exam03;

import java.util.Scanner;

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

		System.out.println("[필수 정보 입력");

		System.out.print("이름 : ");
		String name=scanner.nextLine();

		System.out.print("주민번호 앞 6자리 : ");
		String birth=scanner.nextLine();

		System.out.print("전화번호 : ");
		String tel=scanner.nextLine();

		System.out.println();

		System.out.println("[입력한 내용");
		System.out.println("1. 이름: "+name);
		System.out.println("2. 주민번호 앞 6자리: "+birth);
		System.out.println("3. 전화번호: "+tel);
	}
}

 

 

 

 

 

 

 

 

 

반응형