프로그래밍/자바공부 - 수업일차별

수업 5일차

leecoder 2021. 8. 25. 21:45

오늘의 목차

  1. 배열
    • 배열의 정의
    • 배열선언 + 생성 & 초기화를 따로 하는법
    • 배열선언, 생성, 초기화를 한번에 하는법
    • 배열의 크기
    • 2번째 첨자값을 가진 요소를 표현
  2. Scanner클래스
  3. Math클래스
    • round함수
    • floor함수
    • ceil함수
    • Random함수
  4. 반복문
    • foreach문
    • do ~ while문
    • break문
    • continue문
  5. 클린코드

배열

  1. 배열의 정의 ?
    • 동일한 자료형을 메모리상에 연속적으로 두는것
    • 실제 기억공간은 new연산자에 의해서 힙(동적)영역에 할당
    • [ ][][][] -> [힙영역의 시작 주소값(100번지)] 스택 영역에서 잡힌곳의 시작주소를 참조
    • 100번지 kors 변수, 참조변수(참조할 주소값을 가지는 변수), 배열명
  2. 배열 선언 + 생성 & 초기화 따로하는법
    • 배열 선언 + 생성
      자료형 [] 배열명 = new 자료형[배열크기];
    • 배열 초기화
      배열명[index] = 값;
  3. 배열 선언, 생성, 초기화 한번에 하는법
    • 자료형 [] 배열명 = new 자료형[] { 값 };
    • 자료형 [] 배열명 = { 값 };
  4. 배열의 크기를 알아오는 코딩 :
    • 배열명.length
  5. 2번째 첨자값(index)을 가진 요소를 표현하는 코딩 :
    • 배열명[2]
    • [0][1][2][3][4][5][6][7]... 가장 작은 첨자값 : 아랫첨자값, LowerBound
    •                                        가장 큰 첨자값 : 윗첨자값, UpperBound

Scanner클래스

  1. 한문자를 읽어서 반환하는 함수X -> 문자열로 입력받아 한글자씩 출력
    • 문자열 = 한 문자 + 한 문자 + 문자 나열
      ex) “홍길동” = ‘홍’ + ‘길’ + ‘동
  2. 문자추출 함수
    • 문자열.charAt(Index / 추출할 문자 위치)

Math 클래스

  1. round()함수 - 반올림함수
    • 소수점 첫번째 자리에서 반올림
    • double형이면 long로, float형은 int형으로 반환
    • 원하는 자릿수에서 반올림
      Math.round(반올림 할 값 * 10^원하는 자릿수) / 10^원하는 자릿수D -> 이렇게 해결
  2. floor()함수 - 절삭함수
    1. 소수점 첫번째 자리에서 절삭
    2. double형이면 double로, float형은 float형으로 반환
    3. 원하는 자릿수에서 절삭
      Math.floor(절삭 할 값 * 10^원하는 자릿수) / 10^원하는 자릿수 -> 이렇게 해결
               D가 없는 이유: floor함수가 double형으로 반환되어서 <┘
  3. ceil()함수 - 올림함수
    1. 소수점 첫번째 자리에서 올림
    2. double형이면 double로, float형은 float형으로 반환
    3. 원하는 자릿수에서 올림
      Math.ceil(올림 할 값 * 10^원하는 자릿수) / 10^원하는 자릿수 -> 이렇게 해결
             D가 없는 이유: floor함수가 double형으로 반환되어서 <┘
  4. Random()함수
    • 0.0 <= x < 1.0사이의 실수를 double형으로 반환
    • 0 <= x < n 사이의 정수 출력
      (int)(Math.random()*(n+1);
      0 <= (int)(Math.random()*(n+1) < n+1

반복문

  1. foreach문
    • 코드 : for ( 자료형 변수명 : 배열 or 컬렉션) { 반복할 코드 }
    • 동작원리 : 배열 or 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽어서 변수에 저장
  2. do ~ while문
    • 코드 : do { 반복할 코드 } while(조건)
    • 동작순서 : 먼저 반복할 코드를 실행 시키고 조건을 확인후 실행할지 말지결정
      ㄱ) 반복할 코드 실행
      ㄴ) 조건확인 참인경우 거짓인경우
      ㄷ) 명령코드 실행 while문 종료
      ㄹ) ㄴ) ~ ㄷ) 반복
  3. break
    • 반복문을 탈출할때 사용
    • 반복문을 진행하다가 break;를 만나면 반복문 탈출
  4. continue
    • 반복문 끝으로 이동할때 사용
    • 반복문을 진행하다가 continue;를 만나면 반복문 맨 끝으로 이동

클린코드

1.

if (gender) System.out.printf("이름:%s, 국어:%d, 성별:남자, 등급:%c\n", name, kor, grade);
else System.out.printf("이름:%s, 국어:%d, 성별:여자, 등급:%c\n", name, kor, grade);
if (gender) _gender = "남자";
else _gender = "여자";
System.out.printf("이름:%s, 국어:%d, 성별:%s, 등급:%c\n", name, kor, _gender, grade);
System.out.printf(gender? "이름:%s, 국어:%d, 성별:남자, 등급:%c" : "이름:%s, 국어:%d, 성별:여자, 등급:%c", name, kor, grade);
System.out.printf( "이름:%s, 국어:%d, 성별:%s, 등급:%c", name, kor, gender? "남자" : "여자", grade);

2.

if ( x> y) System.out.printf("더 큰 값은 %d입니다.", x);
else System.out.printf("더 큰 값은 %d입니다.", y);
if ( x> y) max = x;
else max = y;
System.out.printf("더 큰 값은 %d입니다.", max);

3.

if (a.equals(b)) System.out.printf("문자열이 같다.");
else System.out.printf("문자열이 다르다.");
if (a.equals(b)) eq = "같다";
else eq = "다르다"
System.out.printf("문자열이 %s.",eq);

4.

if (n % 2 == 0) System.out.println("짝수(even number)");
else System.out.println("홀수(odd number)");
if (n % 2 == 0) ch = "짝수(even number)";
else ch = "홀수(odd number)";
System.out.println(“%s”, ch);

5.

switch (n % 2) {
case 0: System.out.println("짝수(even number)");
break;
case 1 : System.out.println("홀수(odd number)");
break;
}
switch (n % 2) {
case 0: ch = "짝수(even number)";
break;
case 1 : ch = "홀수(odd number)";
break;
}
System.out.println(“%s”, ch);

6.

for ( int i = 1; i <= 10; i++) {
if ( i != 10) System.out.printf("%d+",i);
else System.out.printf("%d",i);
sum += i;
}
System.out.printf("=%d",sum);
for ( int i = 1; i <= 10; i++) {
System.out.printf("%d+",i);
sum += i;
}
System.out.printf("\b=%d",sum); // ’\b’ = backspace

7.

while (i <= 10) {
System.out.printf("%d+",i);
sum += i;
i++;
}
while (i <= 10) {
System.out.printf("%d+",i);
sum += i++;
}

8.

for ( ; i <= 10; i++ ) {
if (i % 2 == 1) {
sum += i;
System.out.printf("%d+",i);
}
}
for ( ; i <= 10; i += 2 ) {
sum += i;
System.out.printf("%d+",i);
}

'프로그래밍 > 자바공부 - 수업일차별' 카테고리의 다른 글

수업 7일차  (0) 2021.08.30
수업 6일차  (0) 2021.08.30
수업 4일차  (0) 2021.08.24
수업 3일차  (0) 2021.08.23
수업 2일차  (0) 2021.08.21