자바 프로그램은 기본적으로 위에서 아래로 순차적으로 실행된다.
이 때 특정 코드를 조건에 따라 실행시키는 것을 [ 분기 - 조건문 ] 이라고 하고, 특정 코드를 반복해서 실행하는 것을 [ 반복문(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 웹 개발 체험단 활동 중
'EXTERNAL ACTIVITY > Code Presso -웹개발 트랙 체험단-' 카테고리의 다른 글
<코드 프레소 웹 개발 트랙> 실무자가 알려주는 Git 활용한 프로젝트 관리[2] (0) | 2022.01.15 |
---|---|
<코드 프레소 웹 개발 트랙> 실무자가 알려주는 Git 활용한 프로젝트 관리 (0) | 2022.01.14 |
<코드 프레소 웹 개발 트랙 > Git 입문 (0) | 2022.01.13 |
<코드프레소 웹 개발 트랙> 처음 시작하는 Java 프로그래밍[3] (0) | 2022.01.13 |
<코드프레소 웹 개발 트랙 > 처음 시작하는 Java 프로그래밍[2] (0) | 2022.01.11 |