▶ 제어문
①조건문 ②반복문
▶ 조건문
① if-else 문
if(조건식) {
문장; //조건식이 참일 때 실행됨
문장;
}
else {
문장; //조건식이 거짓일 때 실행됨
문장;
}
if(조건식) {
문장;
}
else if(조건식){
문장;
}
else if(조건식){
문장;
}
else {
문장;
}
-삼항연산자
간단한 if - else문일 때 쓸 수 있음
int x 99;
if(x%2==1) {
x=x*3+1;
}
else {
x=x/2;
}
↕
int x = 99;
x = (x%2==1) ? x*3+1 : x/2;
② switch문
switch(변수)
{
case c1: //변수에 저장된 값과 c1이 일치할 때 실행
처리문장1;
break; //switch문을 빠져나간다
case c2: //변수에 저장된 값과 c2이 일치할 때 실행
처리문장2;
break; //switch문을 빠져나간다
.
.
.
default: //위가 모두 해당되지 않을 경우 실행
처리문장d;
break; //switch문을 빠져나간다
}
▶ 반복문
① for문
for (초기식; 조건식; 증감식) { }
초기식: 변수 초기화, 변수 여러개 가능, 변수 선언과 동시에 해도 됨 ex1) int i =0, int sum =0 ex2) i=0
조건식: 수식 ex)i<5
증감식: ex)i++
-무한루프
for ( ; ; ) {
. . .
}
-초기식,증감식 없을 수 있음
int n=20;
for( ;n<253; ){ //초기식과 증감식이 없음, n<253일때까지 반복
n=n+17;
}
-NULL 문장 사용
for (i=0;i<10;i++)
; //반복처리할 내용이 없을 때 세미콜론 사용
-중첩 반복문
for(i=0;i<5;i++) {
for(j=0;j<5;j++) {
문장;
}
}
② while문
while(조건식) //조건이 참이면 실행
{
문장;
}
-무한루프
while(true)
{
문장;
}
- do-while문
do // 실행한다
{
문장;
}while(조건); //조건이 참이면 반복을 계속한다
문장이 적어도 한번은 실행되어야 하는 경우 사용하는 것이 좋다
▶ 반복문 종료
①break문 ②continue문
꼭 필요한 경우에 사용
▶ break문
-레이블이 있을 때
outer_loop: //중첩 반복문을 모두 종료할 수 있는 레이블
while (조건식)
{
while(조건식)
{
문장;
if(조건식)
break outer_loop; //중첩반복문을 빠져나온다
}
}
-레이블이 없을 때
break를 만나면 가장 안쪽 반복문을 빠져나온다
▶ continue문
continue를 만나면 가장 안쪽 반복문 처음으로 간다
▶ 문자열(String)
char형은 한 글자
String은 참조형 but new 키워드를 사용하지 않고 생성할 수 있어 기본형처럼 사용한다
참조형이기 때문에 메소드를 갖고 있다
String city1="Asia";
String city2="Europe";
city2=city1; //대입, city2="Asia"
System.out.println(city1.length()); //글자수세기 메소드 : length()
String city3=String.format("%s like %s",city1,city2); //포맷만들기 메소드 :format(" ", )
System.out.println(city3); //(실행결과) Asia like Asia
String city4 = city1+", "+city3;
System.out.println(city4); //(실행결과) Asia, Asia like Asia
▶ 배열(array)
동일한 타입(형)의 데이터를 여러 개 저장할 수 있는 저장 장소
변수에는 배열이 저장된 주소가 저장된다
int[ ] s = new int[10]; // 크기가 10인 배열 생성
or
int[ ] s;
s = new int[10];
▶ 배열의 초기값
숫자 : 0, 0L, 0.0F, 0.0
문자 : null
논리 : false
▶ 배열 초기화
- new 키워드를 사용하지 않는 배열
다시 생성, 다시 초기화가 불가능하다
int[ ] a = {1,2,3};
a[0] = 5; //a={5,2,3}
- new 키워드를 사용한 배열
길이 변경, 다시 생성, 다시 초기화 가능하다
String[ ] lotto = new String[6]; //크기가 6인 배열
lotto[0] ="abcde"; //0번째 인덱스에 "abcde"을 저장
lotto = new String[] {"seoul","busan","daejun"}; //다시 생성하면서 초기화
lotto[1]="new york"; // lotto = {"seoul","new york","daejun"}
▶ 메소드에 배열을 전달
public static int sum(int[] numbers) {
int total =0;
for(int i =0; i<numbers.length;i++) //배열은 length필드를 갖고있다 배열의 크기를 나타낸다
total = total + numbers[i];
return total;
}
public static void main (String args[]){
a=sum(new int[ ] {1,2,3}) //꼭 초기값을 갖는 배열, new 키워드
}
▶ 배열 복사1
int [] list = {10,20,30,40,50};
int [] num = list; //주소가 복사된다
num[2] =90; //같은 배열을 두 변수가 참조하고 있기 때문에 list[2]=90이 된다
-배열 복사2
int [] list = {10,20,30,40,50};
int [] newlist = new int[10];
for(int i=0;i<list.length;i++)
{
newlist[i] = list[i]; //값을 복사한다 , newlist={10,20,30,40,50,0,0,0,0,0}
}
▶ 2차원 배열
int[ ][ ] s = new int[3][5];
s[0][0] |
s[0][1] |
s[0][2] |
s[0][3] |
s[0][4] |
s[1][0] |
s[1][1] |
s[1][2] |
s[1][3] |
s[1][4] |
s[2][0] |
s[2][1] |
s[2][2] |
s[2][3] |
s[2][4] |
- 2차원 배열 초기화
같은 행의 요소를 중괄호로 묶는다
int[][] a= {
{10,20,30},
{40,50,60},
{70,80,90}
};
-2차원 배열 length필드
전체적으로 하나의 length필드가 있고 행의 개수를 나타냄
각 행마다 length필드가 있고 각 행의 열의 개수를 나타냄
for (int r=0; r<a.length; r++) {
for(int c=0; c<a[r].length; c++) {
System.out.println(r+"행"+c+"열: "+a[r][c]); // 0행0열: 10 ... 2행2열: 90
}
}
▶ 다차원 배열
double[][][] sales = new double[3][2][2];
'개발 > Java' 카테고리의 다른 글
6일차 - 객체지향프로그래밍2 (0) | 2019.01.09 |
---|---|
5일차 - 객체지향 프로그래밍 (0) | 2019.01.08 |
3일차 - 기초 개념들3 (0) | 2019.01.04 |
2일차 - 기초 개념들2 (0) | 2019.01.02 |
1일차 - 기초 개념들 (0) | 2018.11.18 |