오늘의 목차
- 배열
- 배열의 정의
- 배열선언 + 생성 & 초기화를 따로 하는법
- 배열선언, 생성, 초기화를 한번에 하는법
- 배열의 크기
- 2번째 첨자값을 가진 요소를 표현
- Scanner클래스
- Math클래스
- round함수
- floor함수
- ceil함수
- Random함수
- 반복문
- foreach문
- do ~ while문
- break문
- continue문
- 클린코드
배열
- 배열의 정의 ?
- 동일한 자료형을 메모리상에 연속적으로 두는것
- 실제 기억공간은 new연산자에 의해서 힙(동적)영역에 할당
- [ ][][][] -> [힙영역의 시작 주소값(100번지)] 스택 영역에서 잡힌곳의 시작주소를 참조
- 100번지 kors 변수, 참조변수(참조할 주소값을 가지는 변수), 배열명
- 배열 선언 + 생성 & 초기화 따로하는법
- 배열 선언 + 생성
자료형 [] 배열명 = new 자료형[배열크기]; - 배열 초기화
배열명[index] = 값;
- 배열 선언 + 생성
- 배열 선언, 생성, 초기화 한번에 하는법
- 자료형 [] 배열명 = new 자료형[] { 값 };
- 자료형 [] 배열명 = { 값 };
- 배열의 크기를 알아오는 코딩 :
- 배열명.length
- 2번째 첨자값(index)을 가진 요소를 표현하는 코딩 :
- 배열명[2]
- [0][1][2][3][4][5][6][7]... 가장 작은 첨자값 : 아랫첨자값, LowerBound
- 가장 큰 첨자값 : 윗첨자값, UpperBound
Scanner클래스
- 한문자를 읽어서 반환하는 함수X -> 문자열로 입력받아 한글자씩 출력
- 문자열 = 한 문자 + 한 문자 + 문자 나열
ex) “홍길동” = ‘홍’ + ‘길’ + ‘동
- 문자열 = 한 문자 + 한 문자 + 문자 나열
- 문자추출 함수
- 문자열.charAt(Index / 추출할 문자 위치)
Math 클래스
- round()함수 - 반올림함수
- 소수점 첫번째 자리에서 반올림
- double형이면 long로, float형은 int형으로 반환
- 원하는 자릿수에서 반올림
Math.round(반올림 할 값 * 10^원하는 자릿수) / 10^원하는 자릿수D -> 이렇게 해결
- floor()함수 - 절삭함수
- 소수점 첫번째 자리에서 절삭
- double형이면 double로, float형은 float형으로 반환
- 원하는 자릿수에서 절삭
Math.floor(절삭 할 값 * 10^원하는 자릿수) / 10^원하는 자릿수 -> 이렇게 해결
D가 없는 이유: floor함수가 double형으로 반환되어서 <┘
- ceil()함수 - 올림함수
- 소수점 첫번째 자리에서 올림
- double형이면 double로, float형은 float형으로 반환
- 원하는 자릿수에서 올림
Math.ceil(올림 할 값 * 10^원하는 자릿수) / 10^원하는 자릿수 -> 이렇게 해결
D가 없는 이유: floor함수가 double형으로 반환되어서 <┘
- Random()함수
- 0.0 <= x < 1.0사이의 실수를 double형으로 반환
- 0 <= x < n 사이의 정수 출력
(int)(Math.random()*(n+1);
0 <= (int)(Math.random()*(n+1) < n+1
반복문
- foreach문
- 코드 : for ( 자료형 변수명 : 배열 or 컬렉션) { 반복할 코드 }
- 동작원리 : 배열 or 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽어서 변수에 저장
- do ~ while문
- 코드 : do { 반복할 코드 } while(조건)
- 동작순서 : 먼저 반복할 코드를 실행 시키고 조건을 확인후 실행할지 말지결정
ㄱ) 반복할 코드 실행
ㄴ) 조건확인 참인경우 거짓인경우
ㄷ) 명령코드 실행 while문 종료
ㄹ) ㄴ) ~ ㄷ) 반복
- break
- 반복문을 탈출할때 사용
- 반복문을 진행하다가 break;를 만나면 반복문 탈출
- 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); } |