# scope
int m은 main{}에서 접근할 수 있기 때문에 스코프가 넓고, int x는 if{} 코드 블록 안에서만 접근할 수 있기 때문에 스코프가 짧다.
변수의 접근 가능한 범위를 스코프(scope)라고 한다. 범위
scope를 잘 못 설정한다면 비효율적인 메모리 사용, 코드 복잡성이 증가한다. 따라서 알맞은 스코프 설정이 필요하다.
⭐️단축어 command + o → go to class 클래스 찾는거 도와줌
⭐️단축어 command + e 하고 enter 이전 클래스로 돌아감
while vs for문 에서는 둘 다 사용가능하다면 i의 스코프가 for문 안에서만으로 정의할 수 있으므로, 메모리 사용과 유지보수 관점에서 더 좋다.
변수는 꼭 필요한 범위로 한정해서 사용하는 것이 좋다.
**좋은 프로그램은 무한한 자유가 있는 프로그램이 아니라 적절한 제약이 있는 프로그램이다.**
# 형변환
큰 범위에서 작은 범위에 넣으면 다음과 같은 문제가 발생할 수 있다.
- 소수점 버림
- 오버플로우
작은거를 큰 거에 넣을 땐 자동 형변환이 된다.
강제 형변환(casting)
a = (int)3.4 이렇게 명식적으로 대입하면 된다.
넘어가면 젤 작은 숫자부터 다시 시작한다. (오버플로우)
문제가 발생하면 타입을 바꿔라.
int div1 = 3/2 → 1
double div2 = 3/2 → 1.0
double div3 = 3.0 / 2 → 1.5
1. **같은 타입끼리의 계산은 같은 타입의 결과를 낸다**
1. **int + int는 int, double + double은 double**
2. **서로 다른 타입의 계산은 큰 범위로 자동 형 변환이 일어난다.**
byhy0 님의 블로그