일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- k8s
- 스프링핵심원리
- 이펙티브자바
- kubernetes
- 엘라스틱서치
- Sort
- 스프링부트
- 자바스크립트
- 스프링 핵심원리
- effectivejava
- 코딩테스트
- java
- 카카오
- JavaScript
- 예제로 배우는 스프링 입문
- 카카오 면접
- 클린아키텍처
- 김영한
- Effective Java
- Spring
- 알고리즘정렬
- ElasticSearch
- 알고리즘
- 이차전지관련주
- 자바
- 스프링
- 티스토리챌린지
- 이펙티브 자바
- 오블완
- Effective Java 3
- Today
- Total
Kim-Baek 개발자 이야기
자바 기본 (6) - 입출력, 배열 본문
예전에 자바를 처음 공부하던 때, 네이버 블로그에 정리한 내용을 이제 티스토리로 옮기고자 한다
◎ 자바의 입출력(I/O)
Data ------ 입력 ------> program ------- 출력 -------> 모니터
- 입력은 외부로부터 값을 받아오는 것
- 출력은 값을 모니터와 같은 곳에 출력하는 것 ex)System,out.print("안녕");
◎ Scanner
- Java 1.5 부터 추가된 기능으로 유저에게 입력기능을 제공한다. 사용하기 위해서는 class 의 밖에 맨처음 줄에 import java.util.*; 이 필요하다
- 사용법
Scanner 변수명(일반적으로 sc 를 많이 사용) = new Scanner(System.in) - 문자를 읽는 스캐너를 생성하는 코드
String str = sc.nextLine(); - 줄 단위로 입력을 받는다(사용자가 엔터를 칠 때까지, 엔터는 빼고 그 앞까지만 읽는다) -> String 만 읽을 수 있다.
int i = sc.nextInt(); -> 각 타입으로 변환 가능한 것만 읽을 수 있다
-> primitive type 은 전부 있다. ex) nextDouble, nextFloat
◎ break - 반복문, switch 에서 사용 -> break 를 만나는 순간 block을 빠져나와라
ex) while(true){
if(특정조건){
break; -> while을 빠져나라가 (특정조건일 경우)
}
}
◎ continue - 반복문에서만 쓰인다 : 조건을 다시 비교해라 (end block 으로 이동해라)
{ } - end block
ex) for (int i = 10; i > 0; i++){
~~
~~
continue; 아래의 구문은 실행하지 않는다. (보통 if 문 안에서 사용한다)
~~ (X) -> 특정한 조건이 되면 다시 수행해라
~~ (X)
}
※ for 문은 초기, 증감, 조건식이 있어서 continue 를 만나면 증감 후 조건식을 처리하게 된다. while 문의 경우 사용자가 증감식을 알아서 넣어줘야 하기 때문에 증감식을 그냥 지나가 무한 루프가 될 가능성이 존재한다 -> continue 가 들어있는 조건식에도 증감식을 넣어주자
◎ 배열 (Array) : 같은 type 의 같은 의미를 갖는 값들을 모아서 하나로 관리(하나의 변수)
◎ 배열의 구문 1
- 배열 변수 선언 : Datatype [ ] 변수명 (변수명 , [ ] 서로의 위치는 변경이 가능하다)
->모을 Data 들의 type , Datatype [ ] 변수명 -> 배열의 Datatype
ex) int [ ] ages; 또는 int ages [ ] ; 둘 다 가능하다
- 배열 생성 : 값들을 저장할 공간을 생성
바로 연결할 때 (변수명 = ) new Datatype[ length ] ex) new int [ 5 ];
-> 저장할 값의 갯수 : 반드시 int 여야 한다.
선언된 배열과 바로 연결도 가능 ex) ages = new int [ 5 ];
※ index 를 통해서 변수의 순번을 지정, index 는 각 공간의 구분자 (식별자) 이다. 0부터 순서대로 index 가 부여된다.
-> index 를 통해 배열의 공간들에 값 대입 및 사용이 가능하다.
변수명 [ index ] = 값;
값의 변수명
◎ 배열의 구문 2
- 배열 변수 선언, 생성, 값 초기화(배열의 각 index 에 최초값 대입)를 한번에 처리
Datatype[] 변수명 = new Datatype[length] ( X )
-> Datatype[] 변수명 = { 값1, 값2, 값3....};
ex) int [] ages = { 10, 20, 30, 40 }
-> 반드시 선언, 생성, 초기화를 같이 해야한다
int [] ages;
ages = { 10 , 20 , 30 } -> X
-> 값을 중간에 비우면 안된다.
int [ ] ages = { 10, 20, , 40, 50 };
ages [ 2 ] = 30 ; -> X
◎ 배열의 구문 3
- 배열의 생성 및 초기화를 한번에 처리하는 구문
배열변수 = new DataType[ ] { 값1, 값2, 값3,....}
ex) int [ ] ages;
ages = new int [ ] { 10 , 20, 30, 40 };
-> 반드시 배열타입 변수에 대입하는 구문이 있어야한다
◎ 배열의 초기값
1. int [ ] a = new int [ 3 ];
System.out.print ( a[ 0 ] ) ; -> 원래라면 값이 없기 때문에 컴파일에러지만 에러가 X -> 0 출력
2. double [ ] d = new double [ 3 ];
System.out.print ( d[1] ); -> 0.0 이 출력
※ 배열의 index는 생성시 type의 기본값을 넣고 시작한다 (배열의 defaulf 초기화)
- 각 타입의 기본 값 : 정수형 - 0
실수형 - 0.0
char - 공백 (유니코드의 첫 번째 글자)
boolean - false
참조형 - null (참조 안한다)
* int [ ] a = new int [3] ;
a[0] = 1; a[1] = 2;, a[2] = 3; 여기서 4, 5 를 추가하고 싶어도 할 수 없다.
-> 배열의 Length 는 불변이다. 배열을 새로 만들어서 넣고 싶은 값을 추가해야 한다.
◎ 배열의 복사
int [ ] a = { 1, 2, 3};
int [ ] b = new int [ 5 ]; <- 더 큰 공간을 만들어 copy 하자
b[0] = a[0];
b[1] = a[1]; -> for 문을 통해서라면 더 손쉽게 할 수 있다.
b[2] = a[2];
※ System.arraycopy(원본배열, 시작 index, 타겟배열, 시작 index, 복사할 갯수 )
ex) System.arraycopy(a, 0 , b , 0 , 3) -> array 끼리 편하게 복사 가능
※ 배열의 길이
- 배열.length -> int 값이 출력되어 배열의 크기를 알려준다,
◎ 향상된 for 문
int arr [ ] = { 값1, 값2, ....... } ;
for( int idx = 0; idx < arr.length; idx ++) -> 배열 전체를 조회하는 코드
{ 상당히 많이 쓰여 편하게 작성하고 싶다
arr[ idx ];
}
※ 배열 전체를 조회하는 코드에는 항상 고정된 값이 있다.
-> 시작 index = 0, 종료 index = length - 1
따라서 배열의 이름만 알면 편하게 구할 수 있다. -> 향상된 for 문
- 향상된 for 문의 경우 java 1.5 버전 부터 추가되었다.
구문 : for ( 배열 내의 값을 저장할 변수 선언 : 배열 (반복해서 볼 배열))
{
}
ex) for (int i : arr){
System.out.print ( i ); -> 향상된 for 문
(배열/컬랙션 안의 모든값을 조회하기 위한 for문)
}
'개발 > java basic' 카테고리의 다른 글
자바 기본 (9) - 객체와 클래스 (0) | 2020.09.30 |
---|---|
자바 기본 (8) - 이클립스 사용, 객체지향과 절차지향 (0) | 2020.09.29 |
자바 기본 (5) - 시험, 조건문, 반복문 (0) | 2020.09.26 |
자바 기본 (4) - 조건문, 제어문 (0) | 2020.09.25 |
자바 기본 (3) - 변수 및 자료형 (0) | 2020.09.20 |