안녕하세요! APCS 듣고 있는 한 학생입니다!
공부 도중 궁금한 게 두 가지 생겨 질문합니다1
1. coding할때 declaration과 assignment 두가지를 언급하시는데, 이 둘의 정확한 차이점이 무엇인가요? 제가 이해하기로는 declaration은 int i = 2; 처럼 단정지어서 말해 System.out.println(i);를 했을 때 바로 2가 나오는 거고 assignment는 i = 2처럼 그 순간순간마다 새로 정의(?)할수 있는걸 말하는거 같은데 혹시 맞는 건지 설명 부탁드립니다!
===============================
int i = 2; 를 예로 보자면, 아래와 같이 두 줄로 나눌 수 있는데요:
int i; <== 요놈이 declaration 이에요. scope 내에서 한번만 하면 되요.
i=2; <== 이런게 assignment ; 무수히 많이 해도 무방해요 ^^
===============================
2. casting errors에서 4가지 방법 중 3, 4번째만 된다고 설명하신 부분이 있는데요! 잘 이해가 안되서 그런데 혹시 floating point number가 앞에 오거나 active casting을 쓰는 경우 두가지만 가능하다고 암기하면 많이 부족할까요ㅠㅠ? 가능하시다면 한번만 더 간단한 설명 부탁드리겠습니다.
===============================
그것보다는 안되는 것이 왜 안되는지 이해하는 게 중요해요.
Precedence 때문인데, correct / total * 100.0 이면 / 와 * 가 우선순위가 같기때문에 순차적으로 실행이 되지요.
그래서 / 가 먼저 되면서 integer division 때문에 0 이 되는 거구요.
correct. (잘 안보이지만 점이..) 같은 경우는 method call 하는 '.' 이 되어 버리기 때문에 의도와 전혀 상관없는 문법이 되는거지요 ^^
===============================
친절하고 체계적인 수업 감사합니다!
================
재미를 느낀다면 보람차네요 ^^