본문 바로가기
EXTERNAL ACTIVITY/Code Presso -웹개발 트랙 체험단-

<코드 프레소 웹 개발 트랙> 처음 시작하는 자바 프로그래밍[4]

by jaeaemin 2022. 1. 13.

https://www.codepresso.kr/

 

자바 프로그램은 기본적으로 위에서 아래로 순차적으로 실행된다.

이 때 특정 코드를 조건에 따라 실행시키는 것을 [ 분기 - 조건문 ] 이라고 하고, 특정 코드를 반복해서 실행하는 것을 [ 반복문(loop) ] 이라고 한다. 

 

반복문의 종류

  > 특정 코드 집합(코드 블록)을 반복적으로 수행하는 것

  > 주어진 조건을 만족(True)할 때 까지 반복하는 것을 의미한다.

 

1. For문 

 - 반복을 위한 특정 조건으로 for문을 구분한다 ( 초기식; 조건식; 증감식; )

 - { } 를 통해서 for문에 대한 코드 블록을 명시한다.

 - 조건식의 결과가 True인 동안은 코드 블록 내용을 반복실행한다.

 

 

<코드 예제> 1부터 100까지 모두 더하는 과정을 출력하자 ! 

int sum = 0; 

for (int i = 1; i <= 100; i++ ) {
	System.out.println(sum + " + " + i + (sum + i));
    sum = sum + i;
}
 /* 
  s   i  (sum+i)
  0 + 1 = 1
  1 + 1 = 2
  3 + 3
  ...
  4980 + 100 = 5050
  */

 

for 문을 활용하여 문자열에 특정 요소를 추출하는 것도 가능하다.

위의 내용을 활용하여 각 문자열을 출력하는 코드를 작성하면 아래와 같다.

String text = "CODEPRESSO";

for (int i = 0; i < text.length(); i++) {
	System.out.println(text.charAt(i));
}

 

 

 

반복문과 배열

반복문으로 배열 객체에 저정된 데이터를 반복 접근할때 활용 가능하다.

 > " 배열명.length " 를 활용해서 배열의 길이를 알 수 있다.

 > " 배열명[index] " 를 활용해서 배열의 값을 가져올 수 있다.

String[] languages = {"java", "python", "c" , "c++"};
// languages.length  =  4 { 0,1,2,3 } -총 4개의 index
// languages[2] = c  -인덱스 값 2를 가리키는 요소

for (int i=0; i < languages.length; i++ ) {
	System.out.println(languages[i]);
}

 for문을 통해 배열 길이만큼 배열의 요소 하나하나를 출력하므로 java pyton c c+이 모두 출력뒨다.

 

 

반복문 내에서 특정 조건을 확인하도록 조건문을 삽입하는 것도 가능하다.

int[] reviewScore = {3, 1, 4, 1, 5, 5, 4, 1};
int count = 0;

for (int i=0; i < reviewScore.length; i++) {
	if (reviewScore[i] == 1) {  // 해당 인덱스 값 확인
    	count++;
    }
}
System.out.println(count);
// 배열에서 1에 해당하는 값의 개수를 출력 >> 3

 

 

 

Enhance for 문

 > 배열 내 저장된 모든 값을 순차적으로 참조하기 위한 형태의 for문 

 > for-each style 이라고 불림 

 > for 문의 첫 값은 데이터 자료형과 변수명을 명시한다. 

 > ":" 으로 구분하고 그 뒤 배열명을 명시한다.

 > 반복 문의 실행은 배열의 길이만큼 반복한다.

String[] languages = {"java", "python", "c" , "c#"};

for (String language : languages) {
	System.out.println(language);
}

// java , python , c , c# 순서대로 출력

 

 - string language : 가져온 원소 데이터 임시 저장 뱐스

 - language : 원소를 가져올 배열의 객체명

 

 

특정 조건에 대해서 순차적으로 참조하는 경우 Enhance for문이 훨씬 안전하다.

  • 간결하게 표현할 수 있어서 코드 해석하기가 간편함
  • 증감 연산, 종료 식이 없어서 인덱스의 종료를 배열의 수만큼 정확하게 제어할 수 있다.
int[] review = {3, 1, 4, 5, 1, 5, 5, 4 }
int count = 0;

for (int score : review) {
	if ( score == 1 ) {
    	count++;
    }
}
System.out.println(count);
// 2 출력

 

 

 

 

While 문

 - 반복문을 위하여 while 키워드를 사용하여 구문을 시작한다

 - 반복을 위한 조건식이 true 이면 코드 블럭이 실행된다. 

 - 즉 while 문 내부 조건식이 항상 True라면 무한적으로 루프를 돌게된다.

 - 무한루프는 반복문 이후 코드 실행이 되지 않으므로 종료할 수 있도록 변수나 함수 선언 필요

 

<코드예제>

public class Loop{
	public static void main(String[] args) {
    	int i = 0;
        int[] reviwes = {5, 4, 5, 3, 5};
        
        while(i < reviews.length){  // 배열의 길이만큼 반복
        	Ststem.out.println("user-" + (i+1) + "Review :" + reviews[i] + "star");
           	i++ // while문 종료를 위한 변수 선언 
		}
	}
}

i 가 증가하면서 배열의 개수인 5를 넘어가게 되면 while문의 조건식이 False로 바껴 반복문이 종료되게 된다.

 

 

 

break 문

 - 자신과 가장 가까운 반복문 전체의 실행을 중단한다. 

 - 주로 반복문 초입에 if절과 함께 사용된다.

 

 

Continue 문

 - 반복문 진행 중 continue를 만나면 현재 반복을 중단하고, 조건식으로 이동한다.

 - 그 후 다시 순차적으로 코드가 전개된다.

 - if문 내부에서 주로 사용된다.

 

<실습 코드>

public class Loop {
	public static void main(String[] args) {
    	int[] userPermission = {1,5,0,4,2,5,3,0,1};
        
        for(int permission : userPermission) { // foreach문	
    		if (permission == 0) {
        		System.out.println("Permisiion Denied!");
        		break;
            	//continue;
        	}
        System.out,println("this permissio(" permission + ") allow access to datal");
    }
}

 

- if문 내부 break가 존재한다면  모든 int형 배열을 세지 않고 값이 0이 된다면 반복문이 종료된다. (3번 수행)

 -contounue 라면 if문 내부만 출력하고 다시 반복문을 차례대로 실행한다.

 

 

 


- 코드 프레소 "처음 시작하는 자바 프로그래밍" 내용입니다.

- 코드 프레소 Java 웹 개발 체험단 활동 중

- https://www.codepresso.kr/

반응형