본문 바로가기
🤼‍♂️ 5. Project/5-2 연습문제 풀이

[혼자공부하는자바] 2장 변수

by 달님🌙 2021. 7. 26.
반응형

1절 변수

1. OX문제

(1) O

(2) X -> 틀림.. 변수는 선언할때 사용한 타입의 값만 저장 가능!! 

int num = 0; 
int num = "안녕"; // 에러 발생 Type mismatch: cannot convert from String to int

(3) O

(4) X

 

2. 변수명으로 가능한 것에 O표

moduleName (O)

6hour(x) -> 숫자로 시작 안됨

class(x) -> 예약어 안됨

$value(O)  

age (O)

int(x) -> 예약어 안됨

 

3. 컴파일에러가 발생하는 곳 : ④

score2 값을 아직 안넣어준 상태로 계산을 할 수 없기때문

 

4. 10번 라인에서 컴파일 에러 발생 

- 이유 : v3은 if문 안에서 선언되었으므로 그 if문 안에서만 사용가능한데 그 if문으로 빠져나와서 사용했으므로 에러

 

 

2절 기본타입

1. 메모리 사용 크기별 자바의 기본 타입

정수타입 : byte(1) short(2) int(4) long(8)

실수타입 : float(4) double(8)

논리타입 : boolean(1)

2. 

(1) X 

byte : -128~127

(2) X 

문자O 문자열X

(3) O

아스키코드로 읽힘 //A로 출력

(4) X 

범위 넘어감

(5) X

 float var = 3.14f; 로 변경

(6) O

(7) X 문자열안에 큰따옴표 불가

(8) X boolean은 true랑 false만 가능, 0은 int 타입임

(9) X 1e2 = 100.0이라서 double임

(10) O 1e2f = 100.0 

 

3. 자바는

 

재미있는 \프로그래밍\ 언어

 

입니다.

 

4. 범위를 벗어났기때문에

 

5. 출발합니다.

 

3절 타입변환

1. byte(1) short(2) char(2) int(4) double(8)

① 가능

② 가능

③ 불가능

④ 가능

 

2. 

① 가능

② 가능

③ 가능

④ 불가능 " " -> 문자열이므로 char타입으로 변환할 수 없음

 

3. 

① 불가능 -> int타입임 (이클립스에서 기본 계산은 전부 int로 생각!!)

에러 내용 : Type mismatch: cannot convert from int to byte

② 가능

③ 가능

④ 가능

 

4. 

5번 라인에서 에러

-> 이클립스에서 기본 계산은 전부 int로 생각!!

 

5.

char c1 = 'A';
// char c2 = c1 + 1; // -> 에러남 (char + int 라서 값이 int임! )
int c2 = c1 + 1; 
System.out.println(c2); // 66 
System.out.println((char)c2); // B

 

6.

int x = 5;
int y = 2;
int result = x / y;
System.out.println(result); // 2

 

7. 

int x = 5;
int y = 2;
double result = (double)x / y;
System.out.println(result);

8. 

double var1 = 3.5;
double var2 = 2.7;

// 6이 나오도록
int result = (int)(var1 + var2);
System.out.println(result); // 6

//6.2 가 나오도록
double result = var1 + var2;
System.out.println(result);

 

9. 

long var1 = 2L;
float var2 = 1.8f;
double var3 = 2.5;
String var4 = "3.9";
// Integer.parseInt(var4); 안되는 이유 : 3.9가 double형이라서?
int result1 = (int)var1 + (int)(var2 + var3) + (int)Double.parseDouble(var4);
int result2 = (int)var1 + (int)var2 + (int)(var3 + Double.parseDouble(var4));
int result3 = (int)(var1 + (int)var2 + var3 + Double.parseDouble(var4));
int result4 = (int)(var1 + var2 + (int)var3 + Double.parseDouble(var4));
int result5 = (int)(var1 + var2 + var3 + (int)Double.parseDouble(var4));


System.out.println(result1); // 9
System.out.println(result2); // 9
System.out.println(result3); // 9
System.out.println(result4); // 9
System.out.println(result5); // 9

 

10. 

5  23  23  

 

11. 

byte value1 = Byte.parseByte("10");
int value2 = Integer.parseInt("1000");
float value3 = Float.parseFloat("20.5");
double value4 = Double.parseDouble("3.14159");

 

 

 

 

 

4절 시스템 입출력

 

1. 

String name = "감자바";
int age = 25;
String tel1 = "010", tel2 = "123", tel3 = "4567";

System.out.println("이름: " + name);
System.out.print("나이: " + age + "\n");
System.out.printf("전화: %s-%s-%s",tel1,tel2,tel3);

 

2. 

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);

 

3.

Scanner scn = new Scanner(System.in);

System.out.println("[필수 정보 입력]");
System.out.print("1. 이름: ");
String name = scn.nextLine();
System.out.print("2. 주민번호 앞 6자리: ");
String registNum = scn.nextLine();
System.out.print("3. 전화번호: ");
String phoneNum = scn.nextLine();

System.out.println("\n[입력한 내용]");
System.out.println(name);
System.out.println(registNum);
System.out.println(phoneNum);
[필수 정보 입력]
1. 이름: 홍길동
2. 주민번호 앞 6자리: 123456
3. 전화번호: 010-123-1234

[입력한 내용]
홍길동
123456
010-123-1234

 

반응형

댓글