본문 바로가기
수업(국비지원)/Java

[Java] chap2 : 변수 - Exam

by byeolsub 2023. 4. 14.

📌

/*
package chap2;
public class exam {
	public static void main(String[] args) {
     //1. 잘못된 문장을 골라내고 그 이유를 설명하시오.		
char       a='a';   // 정상
char       b="a";   // 오류 - char <- String 저장
	                            홑따옴표 사용해야함.  
String     c="a";   // 정상
String     d='a';   // 오류 - String <- char 저장
	                            겹따옴표 사용해야함.
char       e='ab';  // 오류 - char 타입은 한개의 문자만 저장가능.
	                            '\\''는 가능하다.
String     f="ab";  // 정상
char       g = '';  // 오류 - char 타입은 한개의 문자만 저장가능.
	                                 없어도 안됨.
String     h = "";  // 정상. 빈 문자열이 가능. 

byte   var1 = 128;  // 오류 - byte 는 -128 ~ 127까지만 저장가능     
                   short   var1 = 128; - var1 변수의 자료형을 저장가능한 자료형으로 변환
	                 short   var1 = (byte)128; // 형변환
short  var2 = 128;  // 정상 
int    var3 = 28L;  // 오류 - int<-long. 형변환 연산자 필수
		                          int    var3 = (int)28L;
long   var4 = 128L; // 정상
float  var5 = 1.2;  // 오류 - 실수형 리터널의 기본 자료형 double 
		                          float  var5 = 1.2f;   
double var6 = 1.2;  // 정상
float var9 = '1';   // 정상.  float <- char타입의 코드값이 실수형으로 출력됨. 
	
System.out.println("var1="+var1);   //결과 -128
	}
}

/*
2.   변수를 선언하기 위해서는 자료형과 변수의 이름을 결정해야합니다. 
      변수 이름으로 사용할 수 있는 것을 고르시오.
      변수이름으로 사용할 수 없는 이유를 작성하시오
      A. false  // 예약어 변수 사용금지
      B. default // 예약어 변수 사용금지
      C. _var
      D. a-class // - 문자는 변수 사용 불가.
                    특수문자는 $와 _만 사용가능.
      
3. 변수를 선언하기 위해서는 자료형과 변수의 이름을 결정해야합니다.
   변수 이름으로 사용할 수 있는 것을 고르시오.
    A. s#arp  // # 문자는 변수 사용 불가. 
                 특수문자는 $와 _만 사용가능.
    B. static // 예약어 변수 사용 금지 
    C. _class 
    D. class  // 예약어 변수 사용 금지
    
4. byte 형을 저장할 수 있는 데이터 값의 허용 범위는 얼마입니까?
     -128 ~127 : 256가지 값 가능
                 0 ~ 255 -> 부호때문에 -128 ~ 127까지 범위.
 
5. float 형 변수 선언이 올바르게 된 것을 모두 고르시오.
   A. float f1 = 1F; 
   B. float f2 = 1.0; // 오류. 1.0 double 형. 형변환 혹은 접미사 필요
   C. float f3 = '1'; // 정상. float <- char 
   D. float f4 = "1"; // 오류. float(기본형) <- String(참조형) 의 형변환 불가. 
   E. float f5 = 1.0d; // 오류. 형변환 연산자 필요.       
*/
package chap2;
/*
5. 다음결과가 나오도록 Test2 프로그램 수정하기
[결과]
c=30
ch=C
f=1.5
l=27000000000
result=true 
*/
public class exam {
	public static void main(String[] args) {
		   byte a = 10;
		   byte b = 20;
		   
//		   byte c = a + b ; // 오류. 연산의 결과 int.
		   int c = a + b; // 혹은 byte c = (byte)(a + b) ;  
		   
		   char ch = 'A';
//         ch = ch + 2;     // 오류. 연산의 결과는 int
		   ch = (char) (ch + 2);
		   
//         float f = 3 / 2; // 오류. float <- int = int/int		   
		   float f = 3f/2; // float <- float = float/int
		   
//		   long 1 = 3000 * 3000 * 3000 * 3000; // 오류. int형의 값의 범위를 넘어감.
		   long l = 3000L * 3000 * 3000;
		   float f2 = 0.1f; // float 4비트.
		   
//		   double d = 0.1;  // double 64비트. float 타입과는 저장 범위가 다르다.
		   double d = 0.1; // 형변환. 혹은  double d = 0.1f;
//		                                 boolean result = d==f2;
		   boolean result = (float)d==f2;
		   System.out.println("c="+c);
		   System.out.println("ch="+ch);
		   System.out.println("f="+f);
		   System.out.println("l="+l);
		   System.out.println("result="+result); // 자바 버그. 
		   System.out.printf("%.30f, %.30f\\n",f2,d);
		                      // %.30f : 실수형은 소숫점 이하 30자리로 출력
	}
}