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

[JAVA] 2022.08.22 - Java 변수,명명규칙

by byeolsub 2023. 4. 27.

//1. 잘못된 문장을 골라내고 그 이유를 설명하시오.
	    char       a='a';
	    char       b="a";
	    String     c="a";
	    String     d='a';
	    char       e='ab';
	    String     f="ab";
	    char       g = '';
	    String     h = "";

	    byte   var1 = 128;
	    short  var2 = 128;
	    int    var3 = 28L;
	    long   var4 = 128L;
	    float  var5 = 1.2;
	    double var6 = 1.2;
	    float var9 = '1';
			char       a='a'; //정상
	  //char       b="a"; //""큰따옴표는 문자열.String저장->char는 한번에 1개의 문자만 할당가능
	    String     c="a"; //정상  
	  //String     d='a';//''기호는 한개문자저장.char.<-String은 문자열 ""로 표현.
	  //char       e='ab';//char는 한개문자만 저장
	    String     f="ab";//정상
	  //char       g ='\’'; // 특수문자 \’로 넣어야함
	  //String     h = "\""; //특수문자 \"로 넣기 

		//byte var1 =128;//오류
		//short var1 =128; //var1변수의 자료형을 저장가능한 자료형
	  //byte   var1 = 127; // byte범위 -128~127까지만 표현가능 
			short  var2 = 128; //정상
		//int    var3 = 28L; // int<-long. 형변환 연산자필수
			long   var4 = 128L;//정상 자동변환, (int)128L
		//float  var5 = 1.2; //실수형리터럴의 기본자료형 더블. float 숫자뒤에f,F 
			double var6 = 1.2; //정상
	    float var9 = '1'; //정상 1의 아스키코드값이 49이므로 답이 맞음.

2.   변수를 선언하기 위해서는 자료형과 변수의 이름을 결정해야합니다.
      변수 이름으로 사용할 수 있는 것을 고르시오.
      변수이름으로 사용할 수 없는 이유를 작성하시오
      A. false
      B. default
      C. _var
      D. a-class
A. false // 예약어 불리언 사용불가
B. default // 예약어 변수이름으로 사용불가
C. _var //가능 문자사이에 공백표현시 언더바추가 스네이크방식
D. a-class // 하이픈사용불가

답 C

3. 변수를 선언하기 위해서는 자료형과 변수의 이름을 결정해야합니다.
   변수 이름으로 사용할 수 있는 것을 고르시오.
    A. s#arp
    B. static
    C. _class
    D. class
A. s#arp  //# 사용불가
B. static //예약어 사용불가
C. _class //상수일때 스네이크방식
D. class // 참조자료형에서 
    
   답:  변수이름 첫자는 소문자 의미변경은 대문자
    C

4. byte 형을 저장할 수 있는 데이터 값의 허용 범위는 얼마입니까?
답 byte 범위 -128~127 : 256가지 값 가능
                      : 0~255 : 부호때문에 -128~127까지 범위.

5. float 형 변수 선언이 올바르게 된 것을 모두 고르시오.
   A. float f1 = 1F;
   B. float f2 = 1.0;
   C. float f3 = '1';
   D. float f4 = "1";
   E. float f5 = 1.0d;
	 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; //오류.형변환 연산자 필요

답 A,C 출력하면 49.0. 49는 1의 아스키코드값

5. 다음결과가 나오도록 Test2 프로그램 수정하기
[결과]
c=30
ch=C
f=1.5
l=27000000000
result=true 
package chap2;

public class Test2 {
	public static void main(String[] args) {
		   byte a = 10;
		   byte b = 20;
		   byte c = (byte)(a + b);//연산의 결과 int 
		   char ch = 'A';
		   ch = (char)(ch + 2); //연산의 결과 int 아스키코드에 숫자가더해져서 B가된다.
		   float f = 3 / 2; //float <- float=float/int
		   long l= (long)(3000)*(3000)*(3000);//명시적변환.int*int*int=int여서 long으로
		   float f2 = 0.1f;
		   double d = 0.1f;//자동변환되어서 f
		   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("%.15f,%.15f\\n",f2,d);//소수점이하15자리까치출력,
		   System.out.printf("%.30f,%.30f\\n",f2,d);//실수형 소수점이하 30자리출력	}
		//두자료형사이에 가비지값이 있다..?를 보려주려고 이렇게 출력
}