▶ 제어문

①조건문 ②반복문


▶ 조건문


① 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==1x*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

+ Recent posts