본문 바로가기

자바

Day03

조건문[if,switch문],반복문[for,while,do-while문],배열[array]

 

중첩 for문으로 간단한 구구단 만들기 예제 

public class Sample03 {

	public static void main(String[] args) {
    
    System.out.println("<구구단 2단-9단>");
		for (int a = 2; a <=9; a++ ) { // 2*1 ....2*9~ 9*1....9*9
			System.out.println(a +"단");
			System.out.println("-------------");
			for(int b = 1; b <=9; b++) {
			//	System.out.printf("%d * %d= %d \n" ,a, b,a*b);
			 System.out.println(a + "*" + b + "=" + (a * b));
			}
			System.out.println("---------------");
		}

향상된 for문 [enhanced for statement] : 배열과 컬렉션에 저장된 요소에 접근할 때 기존보다 편리한 방법으로 처리할 수 있다.

for(타입 변수명 : 배열 또는 컬렉션[array] ){

              //반복할 문장

    }

for와 while :  for는 초기치를 주지만 while은 초기치를 주지않는다.

무한 루프를 만들기 위해선 for(;;) / while(true) : 블럭내의 문장이 무한 반복한다. 

do-while문 : while 문과 동일하지만 블럭을 먼저 수행하고 조건식을 평가하기 때문에 최소한 한번은 블럭{}이 수행된다.

break와 continue : break문은 주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 한다. 

continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다. for문에선 증감식으로, while/do-while문에서는 조건식으로 이동한다.

* 반복문 전체를 벗어나지 않고 다음 반복을 계속 수행한다는 점이 break문과 다르다.

 

※ 배열[array] : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열'이라고 한다. 

배열에서 변수로 사용할 때 배열을 다루는데 필요한 참조변수일 뿐 값을 저장하기 위한 공간은 아니다.

배열의 선언 : ex) 타입[] 변수이름; -> int[] score ; 혹은 타입 변수이름[]; -> Stirng name[]; 

배열의 생성 : 생성자 new와 함께 배열의 타입과 길이를 지정해 준다. ex) int[] score; score = new int[5]; 혹은 int[] score = new int[5]; // 배열의 선언과 생성을 동시에 할 수 도 있다. 

인덱스[index] : 배열의 요소마다 붙여진 일련번호로 각 요소를 구별하는데 사용된다. ★인덱스는 1이 아닌 0부터 시작한

. 범위는 0부터 배열길이 -1까지이다.  ex) 길이가 5인 배열 : 인덱스범위는 0,1,2,3,4 까지이다.

배열이름.length : 자바에서는 JVM이 모든 배열의 길이를 별도로,관리하며 배열의 길이에 대한 정보를 얻을 수 있다.

※단, 배열은 한번 생성하면 길이를 변경할 수 없기 때문에, 이미 생성된 배열의 길이는 변하지 않는다. 값을 읽을 수만 있을 뿐 변경할 수 없다.

이때 인덱스의 범위를 초과하게 되면 ArrayIndexOutOfBoundsException 이라는 예외가 발생하여 비정상적으로 종료될 것이다. 

배열의 초기화 : 배열은 생성과 동시에 자동적으로 자신의 타입에 해당하는 기본값으로 초기화되므로 배열을 사용하기 전에 따로 초기화를 해주지 않아도 되지만, 원하는 값을 저장할 수 있다. ex) int[] score = new int[] {10,20,30}; // new int[] 를 생략할 수 있다.

System.arraycopy() 를 이용한 배열의 복사 : 지정된 범위의 값들을 한 번에 통째로 복사한다.

ex) System.arraycopy(num, 0, newNum, 0, num.length) ; ->// num[0]에서 newNum[0]으로 num.length개의 데이터를 복사 for문을 이용한 복사보다 간편하다.

String 배열에서 기본값은 null이다.

 

'자바' 카테고리의 다른 글

Day05  (0) 2021.05.10
1주차 예제를 통한 간단한 복습  (0) 2021.05.09
Day04  (0) 2021.05.07
Day2  (0) 2021.05.04
자바 Day1  (0) 2021.05.03