[Java] 배열

이유은·2023년 10월 23일
0

[Java]

목록 보기
6/18

🔥 배열

  • 동일한 자료형을 메모리상에 연속적으로 나열하여 관리하기 위해 만든 것!

  1. 자료형을 적고 변수형, 메모리에 인트형을 하나만들고 걔 이름을 a로 하자.

  2. int arr1[]; 자료형 다음 배열명, 그다음 배열첨자 연산자 / 배열첨자 연산자는 자료형 뒤에 써도 되고 배열명 뒤에 써도 된다. / 배열첨자 1개가 있으면 1차원 배열, 2개가 있으면 2차원~ 3개가 있음 3차원~ (자바에서는 주로 1~2까지만 사용)

  3. int[] arr2; 선언은 위와 관계없이 똑같음.

  4. arr1= new int[5]; 이런식으로 ! / arr1[0] = 1-; 이렇게는 안됨, 몇개 있는지 가르쳐줘야해 / 무슨 뜻이냐면~ 인트형 다섯개를 만들고 그 이름을 arr1로 하자.

  5. 초기값을 부여하지 않으면 알아서 초기 값이 생긴다 !

  6. int는 기본값이 0!! 정수는 0, 실수는 0.0 / 논리형은 false가 초기값이다.

  7. String은 참조변수이기 때문에 기본값이 null이다.

  8. int[] arr3 = new int[5]; // 이렇게 까지 해야 선언이 끝난 것 - 이름과 몇개인지 한번에.

  9. int[] arr4 = new int[] {1,2,3,4,5}; //초기값을 넣어주고 싶을때는 [] 안에 숫자를 넣는 것이 아니라 []뒤 {}을 만들고 그 안에!!

  10. 배열에서 방은 0부터 시작한다.

  11. int[] arr5 = {1,2,3,4,5}; // 이것도 가능해 // int[] arr5 = new int[]{1,2,3,4,5}; 의 생략 버전, 앞에걸 많이씀

  12. 21,22라인 처럼 나눠쓰는건 인정못한대..

  13. int[] arr100 = new int[] {숫자 길게 나오면} // 그 길이를 한방에 알려주는 명령어가 있음. arr100.length // 변수명+렌스 하면 길이 알려준다 개꿀!


ex1. 5개의 수를 입력받아, 그 합과 평균을 구하는 프로그램

* 평균을 소수점 까지 내고싶을 경우, avg의 자료형을 float로 바꿔주고, 나누기 계산시 한쪽을 float로 형변환!

ex2. 3명의 이름과 전화번호를 입력받아, 출력하는 프로그램

  • 번호와 이름은 같은 사람의 방에 있으니 합쳐서 for문 사용
  • 각각의 방에 입력된 값을 출력할때도 반복이니 for문 사용!

** 동적 배열을 사용해서 푸는 경우 // 동적배열이란 -> 크기가 고정되지 않은 배열을 의미

  • 인원수를 입력 받아서 그 입력된 값을 배열의 크기로 정할수도 있다!

ex3. 5개의 수를 입력받아, 그 합을 구하는 프로그램

  • 아래 사진처럼, 그 숫자들을 다 보여줄 수도 있음

  • 이 경우, 앞의 네개 숫자에는 + 가 붙어도 되지만 마지막 숫자에도 + 가 붙이면 수식이 이상해지기 때문에,
    4개의 경우만 포문을 돌리고 마지막은 따로 =을 추가해서 써줌.

ex4. 인원수를 입력받고, 그 인원수만큼 이름과 국어, 영어점수를 입력받는다. 출력은 이름과 총점, 순위를 출력

  • 총점 구하기 까지는 앞과 똑같음 -> 각각 점수와 총점, 랭크만 추가됨

  • 순위 구하기가 포인트입니다 .
  • 모든 사람을 1등으로 두고, 자기자신을 포함해서 옆 상대와 비교를 해 총점이 낮으면 랭크에 ++를 해준다!

ex5. 로또 프로그램을 만들어보자!

로또 1~45중 중복되지 않은 6개의 수를 선택하여, 몇개 맞았는지 알려주는 프로그램

기준은 컴퓨터가 1~45 중 6개를 랜덤하게 만들어주고, 사용자에게 6개를 입력받아서 몇개 맞았는지 알려주기

컴퓨터의 랜덤수 생성

  • 수의 생성은 매스랜덤으로
  • 중복된 숫자 체크를 해줘야하는데, 그 번호와 번호 전까지의 번호를 비교해서, 같으면 다시 그번호로 돌아가 새로운 번호 부여!!

사용자의 랜덤수 생성 및 맞은 갯수 카운트!

  • 나의 경우 랜덤수를 그냥 입력하기만 했는데, 이럴경우 문제는
    1) 1보다 작거나 45보다 큰수를 입력할 수도 있고
    2) 중복된 숫자를 입력할 수 있다.
    이런 경우를 방지하기 위해, 식을 아래와 같이
    써주는 것이 더 좋다.

  • 두, 와일을 이용해 -> do 조건식을 통해 일단 입력을 받고,
  • 와일을 통해 -> 조건을 제한한다 (1이상 45이하)
  • 그리고 포문을 통해, 그 조건 안에서, 혹시 두 수가 중복된다면 다시 돌아가서 새로운 수를 입력하게끔!

profile
우당탕코딩

0개의 댓글