개발/Java

☕Java:: {제어문 - 반복문과 배열} rough note

hyuunii 2022. 9. 4. 19:23

* == & equals

더이상 쪼갤 수 없는 primitive: boolean, int, double, short, long, float, char

쪼갤 수 있는 non primitive: String, Array, Date, File...

자바는 위 둘을 차별함. 다르게 봄.

원시데이터타입? ==(동등비교연산자) 쓰면 됨(같은 장소에 있냐를 보는거라서 ==)

낫 원시데이터타입? equals(내용이 같냐를 보는 취지로 만들어짐)라는 메쏘드를 이미 다 갖고 있으니 호출해서 쓰면 됨.

근데 문자열은 특혜가 좀 있음. 워낙 자주 쓰이니까.

String o3 = "java2"고 어딘가에 저장된 java2와 걔를 가리키는 o3가 있을것임.

String o4 = "java2"라고 적어주면 문자열은 특혜가 있어서ㅋ 위에 저장된 java2를 함께 가리키는 o4가 있을 것임. 그래서 ==를 써도 됨....!!

↳근데 여기서 false가 도출된다면 다른곳에 저장되었다는 것. 그니까 원시데이터타입 아니면 걍 equals 쓰자. 객체는 복합적인 데이터 타입이어서 얘들이 어떻게 같은지를 비교하는건 쉽지 않으니까. .


* Java 제어문 - 반복문과 배열

7.1. 반복문(Looping Statement)

1) while문 이용하기: 원시적이고 자유도 높지만 반복 횟수까지 정해주기엔 for문이 더 좋음. 반복에 필요한 필수적 세 요소가 서로 멀리 떨어져 있어서 각각의 요소의 연관성이 불분명하고, 여러 간섭 요인에 의해 코드가 망가질 가능성이 큼.

int i = 0;

while(i < 3) {

System.out.println(2);

System.out.println(3);

i++;

}

2) for문 이용하기: 몇 번 반복하라고 정해줄 때 while문 보다 좋은 구문. 반복에 필요한 필수적 세 요소가 응집성이 있고 관련성 캐치에도 쉬움. 그러니까 "몇 번 반복해!"라고 시키고 싶으면 for문을 사용하자.

for(불리언 말고 다른게 들어감)

for(int i = 0-초깃값. 일단 처음 한 번은 무조건 실행됨. 이후에는 뒤의 두 개가 비교/반복 실행됨-; i < 3-반복 더 해야되냐 말아야되냐 체크할 불리언 값-; i++-반복 할 때 마다 진행할 코드-)

↳정리하면 for(int i = 0; i < 3; i++) 여기서 i++는 i = i + 1과 같음


7.2. 배열(Array)

처리하고자 하는 데이터가 1억(!)건이고 걔들을 반복적으로 처리하는 구분이 반복문. 그렇기에 엄청나게 많은 데이터를 잘 정리 정돈 하기 위한 체계가 필요한데, 자바의 가장 기본적인 배열이 바로 배열임. 배열과 반복문은 떼레야 뗄 수 없음.

해야 할 일이 회원 명단 관리라고 쳐보셈. 3명의 유저를 정리할건데 egoing, jinhyuck, ubin이라고 해. 이걸

String users = "egoing, jinhyuck, youbin"라고 하면.. 관리가 어려우니까 문자열로 이루어진 배열로 만들자.

String[] users = new string[3];

users[0] = "egoing";

users[1] = "jinhyuck";

users[2] = "ubin";

얘를 보고 자바는 '아 String 즉 문자열로 이루어진 [] 즉 배열을 담는 박스고 그러한 users라는 변수를 만들었구나!!' 라고 이해 할 것. 그 뒤에 new String[배열의 크기]를 지정해 준 것. 글고 3칸짜리 캐비넷에 각각 데이터 넣어 줌.

+ 많은 프로그래밍 언어가 갯수는 1, 2, 3으로 카운팅하지만

+ 자리는 Index로 0, 1, 2로 카운팅 함. 그리고

+ 각각의 데이터는 Element라고 부름("egoing", "jinhyuck", "ubin")

System.out.println(users[1]); 하면 "jinhyuck"이 쫘잔 등장함~!

System.out.println(users.length); 하면 3이 나오는데 3칸짜리 배열이라고 알려주는 것!

이건 근데 처음에 3칸짜리 빈 깡통을 만들고 데이터를 입력해준건데, 처음부터 데이터를 넣어서 만들수도 있음.

int[] scores = {10, 100, 100};

이렇게 해주면 됨ㅎㅎ


7.3. 반복문Loop + 배열Array

1) 좀 덜 똑똑한 버전

String[] users = new String[3];

users[0] = "egoing";

users[1] = "jinhuck";

users[2] = "youbin";

for(int i=0; i<3; i++) {

System.out.println("⭐"+users[i]+"⭐");

2) 똑똑한 버전

String[] users = new String[3];

users[0] = "egoing";

users[1] = "jinhuck";

users[2] = "youbin";

for(int i=0; i<users.length; i++) {

System.out.println("⭐"+users[i]+"⭐");

omg....... fucking wonderfully great.....................