728x90
λ°˜μ‘ν˜•

1) ν˜•λ³€ν™˜(Type Conversion) :λ°μ΄ν„°μ˜ νƒ€μž…μ„ λ°”κΏˆ (intλ₯Ό doubleμ΄λ‚˜ float둜 λ°”κΏˆ)

 

더보기

   ex) int νƒ€μž…μ˜ μ •μˆ˜ 200의 bit κ°’

          200 = 00000000 00000000 00000000 11001000

 

         μ‹€μˆ˜ν˜•μΈ float νƒ€μž…μœΌλ‘œ μ •μˆ˜ 200.0의 bit κ°’

          200.0 = 01000011 01001000 00000000 00000000

 

=> 우리의 μž…μž₯μ—μ„œλŠ” μ •μˆ˜ 200κ³Ό μ‹€μˆ˜ 200.1은 κ°™μ§€λ§Œ μ»΄ν“¨ν„°λŠ” μ™„μ „ λ‹€λ₯΄κ²Œ μ €μž₯ν•œλ‹€

 

1-1) μžλ™ ν˜•λ³€ν™˜

 

더보기

      ex) double a = 3.0F; (였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€)

             => double νƒ€μž…μ΄ float νƒ€μž…λ³΄λ‹€ 더 λ§Žμ€ 수λ₯Ό ν‘œν˜„ν•  수 있기 λ•Œλ¬Έμ—, νƒ€μž…μ„ 변경해도 μ •λ³΄μ˜ 손싀이 일어                    λ‚˜μ§€ μ•ŠλŠ” 경우 μžλ™ ν˜• λ³€ν™˜μ΄ μΌμ–΄λ‚œλ‹€!!

 

      ex2) float a = 3.0; (였λ₯˜κ°€ λ°œμƒν•œλ‹€)

              => μ‹€μˆ˜μ— Fκ°€ λΆ™μ–΄μžˆμ§€ μ•Šλ‹€λ©΄ double νƒ€μž…μ— ν•΄λ‹Ήν•œλ‹€. μœ„μ™€ λ°˜λŒ€μ˜ 이유둜 μžλ™ ν˜• λ³€ν™˜μ΄ μΌμ–΄λ‚˜μ§€ μ•Š                       λŠ”λ‹€.

 

고둜, μžλ™ ν˜•λ³€ν™˜μ˜ 원칙은 ν‘œν˜„ λ²”μœ„κ°€ 쒁은 데이터 νƒ€μž…μ—μ„œ 넓은 데이터 νƒ€μž…μœΌλ‘œμ˜ λ³€ν™˜λ§Œ ν—ˆμš© κ°€λŠ₯ν•˜λ‹€.πŸ™Œ

 

1-2) ν˜•λ³€ν™˜ κ°€λŠ₯ 관계

 byte -> short, char -> int -> long(μ—¬κΈ°κΉŒμ§€ μ •μˆ˜ν˜•) -> (μ—¬κΈ°λΆ€ν„° μ‹€μˆ˜ν˜•)float -> double

 

더보기

ex) int a = 3;

      float b = 1.0F;

      double c = a+b;

 

=> μ‹€μˆ˜ν˜•μ΄ μ •μˆ˜ν˜•λ³΄λ‹€ λ°μ΄ν„°μ˜ νƒ€μž…μ΄ 더 ν¬λ―€λ‘œ intλ₯Ό μ‹€μˆ˜ν˜•μΈ float둜 λ³€ν™˜ν•˜μ—¬μ•Ό ν•œλ‹€.

     κ³ λ‘œ 3 -> 3.0으둜 λ°”κΎΈλ©΄ double c의 싀행값은 3.0F + 1.0F = 4.0F 이닀.

 

1-3) λͺ…μ‹œμ  ν˜•λ³€ν™˜(Explic Conversion) : μžλ™ ν˜•λ³€ν™˜μ΄ μ•ˆλ˜λŠ” κ²½μš°μ—, μˆ˜λ™μœΌλ‘œ ν˜•λ³€ν™˜ν•΄μ•Ό ν•˜λŠ” 것

더보기

ex) float a = 100.0; (였λ₯˜ λ°œμƒ)

       int b = 100.0F; (였λ₯˜ λ°œμƒ)

 

=> float a = (float) 100.0;

     int b = (int)100.F;

    고둜, λͺ…μ‹œμ  ν˜•λ³€ν™˜μ€ κ΄„ν˜Έ μ•ˆμ— 데이터 νƒ€μž…μ„ μ €μž₯ν•΄μ„œ κ°’ μ•žμ— μœ„μΉ˜μ‹œν‚€λŠ” 것을 λ§ν•œλ‹€.πŸ‘πŸ‘

**   (int) 100.1F λŠ” μ†Œμˆ˜μ  μ΄ν•˜μ˜ μˆ˜λŠ” λ‚ μ•„κ°€λ―€λ‘œ 100으둜 ν‘œμ‹œλœλ‹€.


 

1) λ°°μ—΄

 

1-1) λ°°μ—΄μ˜ 의미 : 배열은 λ³€μˆ˜λ“€μ„ μ—°μ†λœ μ§‘ν•¨μ²΄λ‘œ λͺ¨μ•„ 놓은 κ²ƒμœΌλ‘œ

                              λ™μΌν•œ 이름을 μ‚¬μš©ν•˜λ©° 인덱슀둜 각 ν•­λͺ©μ„ κ΅¬λΆ„ν•œλ‹€.

1-2) λ°°μ—΄μ˜ ν•„μš”μ„± : 배열을 톡해 코딩을 μ’€ 더 κ°„μ†Œν™”ν•  수 μžˆλ‹€!!

 

 ex) 배열을 μ‚¬μš©ν•˜μ§€ μ•Šμ•˜μ„ λ•Œ,

int score1 = 100;

int score2 = 90;

int score3 = 50;

int score4 = 95;

int score5 = 85;

 

int sum = score1;

sum += score2;

sum += score3;

sum += score4;

sum += score5;

double average = sum / 5.0;

 

ex+) 배열을 μ‚¬μš©ν•  λ•Œ,  11μ€„μ—μ„œ 6μ€„λ‘œ κ°μ†Œ ν•œκ²ƒμ„ λ³Ό 수 μžˆλ‹€πŸ‘πŸ‘Œ

 

int[] scores = { 100, 90, 50, 95, 85 };

int sum = 0;

for (int i = 0; i < 5; i++)

sum += scores[i];

double average = sum / 5.0;

1-3) λ°°μ—΄μ˜ μ„ μ–Έκ³Ό 생성

 

- λ°°μ—΄μ˜ μ„ μ–Έ : μ‹€μ œλŠ” λ°°μ—΄ λ³€μˆ˜μ˜ μ„ μ–Έ : int [ ] scores; ν˜Ήμ€ int scores[ ]; (int scores[5] - error)

- λ°°μ—΄μ˜ μ„ μ–Έκ³Ό 생성 : μ‹€μ œλŠ” λ°°μ—΄ λ³€μˆ˜μ˜ μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™”

1-4) λ°°μ—΄μ˜ 크기

 

- 배열이 생성될 λ•Œ λ°°μ—΄μ˜ 크기가 κ²°μ •

- λ°°μ—΄μ˜ length ν•„λ“œκ°€ λ°°μ—΄μ˜ 크기λ₯Ό λ‚˜νƒ€λƒ„, 예λ₯Ό λ“€μ–΄, scoresκ°€ κ°€λ¦¬ν‚€λŠ” λ°°μ—΄μ˜ ν¬κΈ°λŠ” scores.length

package java0320;

import java.util.Scanner;

public class ArrayDemo {

         public static void main(String[] args) {

                 Scanner in = new Scanner(System.in);

                 int scores[] = new int[5];

                 int sum = 0;

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

                        scores[i] = in.nextInt();

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

                         sum += scores[i];

                  System.out.println("평균 = " + sum / 5.0);

           }

}

=> Scanner 문을 톡해 μžμ‹ μ΄ μž…λ ₯ν•  수 μžˆλŠ” κΈ°λŠ₯을 μƒμ„±ν•˜κ³ , 5κ°€μ§€μ˜ 숫자λ₯Ό μž…λ ₯ν•˜λ©΄

      for 문을 톡해 λ°˜λ³΅λ˜μ–΄ 5개 숫자의 평균 값을 μ•Œλ €μ€€λ‹€.

 

1-5) 닀차원 λ°°μ—΄

 

- λ°°μ—΄μ˜ λ°°μ—΄(2차원 이상)

- 예λ₯Ό λ“€μ–΄ 학생 3λͺ…μ˜ 5κ³Όλͺ© 성적을 μ²˜λ¦¬ν•˜λŠ” μ •μˆ˜ νƒ€μž… 2차원 λ°°μ—΄(3ν–‰ x 5μ—΄)인 scoresλ₯Ό μ„ μ–Έν•˜κ³  μƒμ„±ν•œλ‹€κ³  κ°€μ •

 

ex) int [ ] [ ] scores = new int [3][5];    //  2개의 λŒ€κ΄„ν˜ΈλŠ” 2차원 배열을 ν‘œμ‹œ, 3은 ν–‰μ˜ 개수, 5λŠ” μ—΄μ˜ 개수 

 

  1. λŒ€κ΄„ν˜Έμ˜ 개수 : μ°¨μ›μ˜ 수
  2. μ•ž λŒ€κ΄„ν˜Έμ˜ 수 : ν–‰μ˜ 수
  3. λ’€ λŒ€κ΄„ν˜Έμ˜ 수 : μ—΄μ˜ 수
0.0 0.1 0.2 0.3 0.4
1.0 1.1 1.2 1.3 1.4
2.0 2.1 2.2 2.3 2.4

1-6) 동적 λ°°μ—΄

 

- μ²˜λ¦¬ν•  λ°μ΄ν„°μ˜ κ°œμˆ˜κ°€ κ³ μ •λœ κ²½μš°κ°€ μ•„λ‹ˆλΌλ©΄ 정적 배열은 μžμ›μ„ λ‚­λΉ„ν•˜κ±°λ‚˜ ν”„λ‘œκ·Έλž¨μ„ λ‹€μ‹œ 컴파일

- μžλ°”λŠ” 크기가 μœ λ™μ μΈ λ°°μ—΄(고정적이지 μ•ŠμŒ)을 μ§€μ›ν•˜κΈ° μœ„ν•˜μ—¬ ArrayList 클래슀λ₯Ό 제곡

- ArrayList 객체 생성

=>  ArrayList<μ°Έμ‘°νƒ€μž…> μ°Έμ‘°λ³€μˆ˜ = new ArrayList<>();

- ArrayList μ›μ†Œ μ ‘κ·Ό

  • μ°Έμ‘°λ³€μˆ˜.add(데이터) : 데이터λ₯Ό 동적 배열에 μ›μ†Œλ‘œ μΆ”κ°€
  • μ°Έμ‘°λ³€μˆ˜.remove(인덱슀 번호) : 동적 λ°°μ—΄μ—μ„œ 인덱슀 번호의 μ›μ†Œλ₯Ό 제거
  • μ°Έμ‘°λ³€μˆ˜.get(인덱슀 번호) : 동적 λ°°μ—΄μ—μ„œ 인덱슀 번호의 μ›μ†Œλ₯Ό κ°€μ Έμ˜€κΈ°
  • μ°Έμ‘°λ³€μˆ˜.size() : 동적 배열에 ν¬ν•¨λœ μ›μ†Œμ˜ 개수

package sec02;

import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListDemo {
           public static void main(String[] args) {
                      Scanner in = new Scanner(System.in);
                      ArrayList<Integer> scores = new ArrayList<>();
                      int data;
                      int sum = 0;

                      while ((data = in.nextInt()) >= 0)
                                  scores.add(data);

                       for (int i = 0; i < scores.size(); i++)
                              sum += scores.get(i);

                        System.out.println("평균 = " + (double)sum / scores.size());
                }
}

 μœ„ μ½”λ“œλŠ” μ œκ°€ λ°œν‘œν•œ μ½”λ“œμΈλ””μš”~~ μœ„μ— μ½”λ“œμ™€λŠ” λ‹€λ₯΄κ²Œ λ³€μˆ˜μ˜ κ°œμˆ˜κ°€ λ¬΄ν•œμ •μœΌλ‘œ while문을 λ§Œμ‘±μ‹œν‚€μ§€ μ•Šμ„λ•Œ λΉ μ Έλ‚˜κ°€λŠ” 동적 λ°°μ—΄μž…λ‹ˆλ‹€!!!! 0이상인 λ™μ•ˆμ— μ§„ν–‰λœλ‹€κ³  ν–ˆμœΌλ‹ˆκΉŒ μˆ˜κ°€ λ§ˆμ΄λ„ˆμŠ€μ΄λ©΄ λ°”μ Έλ‚˜μ˜€κ³  μž…λ ₯ν•œ 수λ₯Ό λ”ν•œ 값을 λ‚˜λˆ„μ–΄ λ‚˜μ˜€λŠ” 값이 이 μ½”λ“œμ˜ κ²°κ³Ό μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 1,2,3,4,5,-10이라면 1+2+3+4+5 / 5 = 3이닀. 

λ§ˆμ§€λ§‰μœΌλ‘œ μ²˜μŒμ— intλ₯Ό μ‚¬μš©ν•˜μ—¬ μ •μˆ˜ν˜•μ„ μ‚¬μš©ν•˜μ˜€μ§€λ§Œ λ§ˆμ§€λ§‰μ— double을 μ‚¬μš©ν•œ μ΄μœ λŠ” λ‚˜λ¬΄λ©΄ μ‹€μˆ˜κ°€ 될 μˆ˜λ„ μžˆμ–΄μ„­λ‹ˆλ‹Ή~~~

λ‹€μŒ ν¬μŠ€νŒ…μ— λ§Œλ‚˜μœ β•°(*°β–½°*)β•―β•°(*°β–½°*)β•―

728x90
λ°˜μ‘ν˜•

+ Recent posts