19일차

김윤정·2024년 7월 12일

코딩

목록 보기
19/60
post-thumbnail

1. 아래가 true 로 출력되는 원리는?

System.out.println("7.0 == 7 : " + (7.0 == 7));

관계연산자는 형변환 필요없이 알아서 변환되기때문에 둘다 double 로 변환하면 7.0 값이 똑같습니다. 따라서 true 입니다.

2.아래 결과를 예측 하고, 원리를 적어 보시오(결합방향의 이해)



답은 30 30 30 나옵니다.
연산기호가 = 하나밖에없기때문에 결합방향은 왼쪽에서 오른쪽입니다. 10->20->30, 즉 답은 30 30 30입니다.

3. 아래의 연산자를 설명하시오.

  • % : 왼쪽의 피연산자 값을 오른쪽의 피연산자 값으로 나눴을 때 얻게되는 나머지를 반환합니다.
  • 복합 대입 연산자: 연산자 +, -, *, /, % 등을 축약하여 사용하는 것을 말합니다.
    예를 들어 c = c + 3;을 c+=3;으로 복합 대입 연산자를 활용할 수 있습니다.

4. 리터럴이란 무엇인가요?

리터럴은 자료형을 기반으로 표현이 되는 상수를 의미합니다.
ex) int num1 = 5 + 7;
ex) double num2 = 3.3 + 4.5;

  • 정수는 무조건 int형으로 인식하기로 약속되어 있습니다
  • 따라서 5와 7은 '정수형 리터럴'이다.
  • 그리고 3.3과 4.5는 '실수형 리터럴’이다.

5. 아래의 내용이 에러가 나는 이유와 수정 방법은?

System.out.println(3147483647 + 3147483648); //에러남

int형은 대략 21억까지 표기가능한데 이미 그 값을 초과하였습니다. 따라서 리터럴로 더 큰 값인 long형으로 바꿔줘야합니다.
System.out.println(3147483647L + 3147483648L);
숫자뒤에 L을 써주어 표기하면 값이 제대로 나옵니다.

6.자동 형변환과 명시적 형변환에 대하여 설명하시오.

  • 자동 형변환
    자동형 변환은 자료형의 크기가 큰 방향으로 형 변환이 일어나고 크기에 상관없이 정수 자료형보다 실수 자료형을 우선합니다.

    위의 사진은 자동형변환의 방향입니다.

  • 명시적 형변환
    자동 형 변환 규칙에 부합하지는 않지만, 형 변환이 필요한 상황이면 명시적 형 변환을 진행합니다.

7.아래의 에러가 나는 이유를 설명하고 수정 하시오.

int a = 3;
int b = 4;

double c = a / b;
System.out.println(result);

결과 0.0

int a,b와 double c는 먼저 자료형이 같지 않습니다.
자료형을 통일시켜주기위해 괄호안에 자료형을 넣어주면 값이 나옵니다.

		int a = 3;
		int b = 4;
		 
		double c = (double) a / b;
		System.out.println(c);

8. 이스케이프 시퀀스의 종류를 나열하고 기능을 설명하시오.

  • '\b': 백스페이스 문자
  • '\t': 탭 문자
  • '\': 백슬래시 문자
  • '\'': 작은 따옴표 문자
  • '\"': 큰 따옴표 문자
  • '\n': 개 행 문자
  • '\r': 캐리지 리턴 문자

9. 아래의 출력 결과를 확인하고, 130이 나오는 이유를 설명하시오.

System.out.println('A');
System.out.println('A' + 'A');

결과
A
130

char형으로 인식, 메모리에 올라갈 때 65값이 들어갑니다.
char형으로 65메모리에 올리고, int형으로 자동형변환합니다.

10. 결합 방향과 우선순위에 대하여 설명하시오.

11. "1초과 100미만인가?" 를 코딩 하면?

		int num1 = 10;
		boolean result;
		result = (1<num1) && (num1<100);
		System.out.println("1초과 100 미만인가?" + result);

12. && 연자자와 || 연산자의 차이는?

&&은 and 개념이고 ||은 or 개념입니다.

13. "2의 배수 또는 3의 배수?" 를 코딩으로 표현 하시오.?

		boolean result;
		int num1 = 22;
		result = ((num1 % 2)==0) || ((num1 % 3)==0);
		System.out.println("2 또는 3의 배수인가?" + result);

14.아래를 코딩 하시오.

int 로 국어 영어 수학, 총점을 선언및 값 할당.
double 로 avg 선언후 에 평균을 넣음

		int 국어= 100;
		int 영어= 90;
		int 수학= 80;
		int total= (국어 + 영어 + 수학) ;
		double avg=(국어 + 영어 + 수학)/3;
		
		System.out.println( "총점:" +total);
		System.out.println( "평균"+ (double)avg);

0개의 댓글