본문 바로가기

Wanna be a Programmer/Java Programming

Java Programming - 조건문, 반복문, 배열


조건문(분기문) : if, switch-case


if(조건) { 실행코드 } : 조건의 결과 true인 경우만 실행코드 실행

    * if(조건) { 실행코드 } else { 실행코드 }

if 조건의 결과가 true인 경우 if절의 실행코드 실행, false인 경우 else절의 실행코드 실행

    * if(조건) { 실행코드 } else if(조건A) { 실행코드 } else { 실행코드 }


- Switch-case

* switch(: 메소드 포함, byte, short, char, int, Enum, String) {

        case 1: 실행구문 A;

        case 2: 실행구문 B;

        default : 실행구문 C; }

식의 값이 값1이면 구문 A를 실행, 2이면 구문 B를 실행, 그 밖의 값인 경우 구문 실행

 

반복문 : 조건을 만족하는 동안 구문 반복해서 실행

- (for: 유한반복, while: 무한반복, do-while)


while(반복조건식) { 반복할 구문

* 무한반복, c와는 달리 0이나 1로 불가능하고 true or false로 사용

        ex) while(true) { System.out.println(“Hello, Java”); }

- for(초기식 ; 조건식 ; 증감식) { 반복할 구문

반복순서 : ①→②→④→③→②→④→③...


초기식 : 변수선언 및 초기값 할당, 변수선언은 같은 type일 경우에 여러 개 선언 가능

조건식 : 반복할 조건을 입력, 결과값이 하나만 나와야 한다. 조건식은 오직 하나

    ※ 초기식, 조건식, 증감식을 모두 생략하고도 사용가능하다(무한반복)

    ex) for(int i =0; i<=10; i++) { System.out.println(i); }

반복문(for, while, do-while)의 반복구문에서 break(반복문을 빠져나간다), continue(계속반복)

 

배열(Array) : 같은 typeData()을 모아서 관리하는 객체


변수선언 Data type[ ] 식별자

ex) int [ ] arr;

배열 객체 생성 및 할당 

- 식별자 = new Datatype[length]; 

ex) arr = new int[10];

     - int data 10개를 모을 수 있는 배열 객체, 길이 변경 불가능

배열에 값 대입 

- 변수명[index] : data가 있는 위치 0부터 시작됨 =

ex) arr[0] = 20;

    - 대입된 값 사용 : 변수명[index];

선언

int[ ] i;

int i[ ];


배열객체 생성

i = new int[5]; 묵시적 초기화

 

100

I[0]

0

104

I[1]

0

108

I[2]

0

112

I[3]

0

116

I[4]

0

120

I[5]

0

메모리

초기화

묵시적 초기화(Default) : 변수 type의 기본값 할당(기본값 : 숫자(0,0.0), char(공백),논리(false), 나머지(Reference data type, NULL)

명시적 초기화 : 코드상에 대입한 값이 할당됨


배열객체.length 배열 크기(length)를 알려준다.

ArrayIndexOutOfBoundsException 배열의 범위를 넘어선 경우 발생하는 오류

 

 

향상된 for(jdk 1.5) 배열 / collection의 값들을 조회할 때 사용

배열 : 0번 인덱스부터 마지막 인덱스까지의 값 조회

구문 : for(변수선언 : 배열객체) { 변수

 ex) int [] arr = {1,2,3,4,5}; for(int i : arr) { S.o.p(i) }

double type Math.round(double) : 반올림, Math.ceil(double) : 올림, Math.flour(double) : 내림

 

Reference type의 배열

선언 : Student[] stuArr = new Student[30];

선언

Student [] stu = new Student[3];

 

stu

100

 

메모리

 

100

 

 

 

 

1000

학생

 

 

 

 

 

 

primitive type처럼 변수에 직접 값을 대입하는 것이 아니고 Reference Type의 객체가 참조하는 인스턴스를 참조하여 값을 할당하거나 받는다.

 

다차원배열

- 값들을 구분하는 범주(category)의 개수에 따라 다차원 배열 사용

선언 : DataType[][] 변수명

ex) int [][] i; int [] i []; int i[][];

생성 및 변수의 대입 변수명 = new Datatype[length][height]; 

ex) i = new int[3][2];

배열 객체 접근 : 변수[index][index]; 

ex) I[0][1]=10;

선언, 생성, 초기화 int [][] I = { {10,20}, {30,40,50}, {1,5}};